<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>

<link href='https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; --title-bar-height:20px; }
.mac-os-11 { --title-bar-height:28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
thead, tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
svg { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
  #write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; padding-bottom: 0px !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  .typora-export #write { break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  .is-mac table { break-inside: avoid; }
  .typora-export-show-outline .typora-export-sidebar { display: none; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.reversefootnote { font-family: ui-monospace, sans-serif; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
  .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex:2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
  .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
  .typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }


:root {
    --side-bar-bg-color: #fafafa;
    --control-text-color: #777;
}

@include-when-export url(https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext);

/* open-sans-regular - latin-ext_latin */
  /* open-sans-italic - latin-ext_latin */
    /* open-sans-700 - latin-ext_latin */
    /* open-sans-700italic - latin-ext_latin */
  html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif;
    color: rgb(51, 51, 51);
    line-height: 1.6;
}

#write {
    max-width: 860px;
  	margin: 0 auto;
  	padding: 30px;
    padding-bottom: 100px;
}

@media only screen and (min-width: 1400px) {
	#write {
		max-width: 1024px;
	}
}

@media only screen and (min-width: 1800px) {
	#write {
		max-width: 1200px;
	}
}

#write > ul:first-child,
#write > ol:first-child{
    margin-top: 30px;
}

a {
    color: #4183C4;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    position: relative;
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-weight: bold;
    line-height: 1.4;
    cursor: text;
}
h1:hover a.anchor,
h2:hover a.anchor,
h3:hover a.anchor,
h4:hover a.anchor,
h5:hover a.anchor,
h6:hover a.anchor {
    text-decoration: none;
}
h1 tt,
h1 code {
    font-size: inherit;
}
h2 tt,
h2 code {
    font-size: inherit;
}
h3 tt,
h3 code {
    font-size: inherit;
}
h4 tt,
h4 code {
    font-size: inherit;
}
h5 tt,
h5 code {
    font-size: inherit;
}
h6 tt,
h6 code {
    font-size: inherit;
}
h1 {
    font-size: 2.25em;
    line-height: 1.2;
    border-bottom: 1px solid #eee;
}
h2 {
    font-size: 1.75em;
    line-height: 1.225;
    border-bottom: 1px solid #eee;
}

/*@media print {
    .typora-export h1,
    .typora-export h2 {
        border-bottom: none;
        padding-bottom: initial;
    }

    .typora-export h1::after,
    .typora-export h2::after {
        content: "";
        display: block;
        height: 100px;
        margin-top: -96px;
        border-top: 1px solid #eee;
    }
}*/

h3 {
    font-size: 1.5em;
    line-height: 1.43;
}
h4 {
    font-size: 1.25em;
}
h5 {
    font-size: 1em;
}
h6 {
   font-size: 1em;
    color: #777;
}
p,
blockquote,
ul,
ol,
dl,
table{
    margin: 0.8em 0;
}
li>ol,
li>ul {
    margin: 0 0;
}
hr {
    height: 2px;
    padding: 0;
    margin: 16px 0;
    background-color: #e7e7e7;
    border: 0 none;
    overflow: hidden;
    box-sizing: content-box;
}

li p.first {
    display: inline-block;
}
ul,
ol {
    padding-left: 30px;
}
ul:first-child,
ol:first-child {
    margin-top: 0;
}
ul:last-child,
ol:last-child {
    margin-bottom: 0;
}
blockquote {
    border-left: 4px solid #dfe2e5;
    padding: 0 15px;
    color: #777777;
}
blockquote blockquote {
    padding-right: 0;
}
table {
    padding: 0;
    word-break: initial;
}
table tr {
    border: 1px solid #dfe2e5;
    margin: 0;
    padding: 0;
}
table tr:nth-child(2n),
thead {
    background-color: #f8f8f8;
}
table th {
    font-weight: bold;
    border: 1px solid #dfe2e5;
    border-bottom: 0;
    margin: 0;
    padding: 6px 13px;
}
table td {
    border: 1px solid #dfe2e5;
    margin: 0;
    padding: 6px 13px;
}
table th:first-child,
table td:first-child {
    margin-top: 0;
}
table th:last-child,
table td:last-child {
    margin-bottom: 0;
}

.CodeMirror-lines {
    padding-left: 4px;
}

.code-tooltip {
    box-shadow: 0 1px 1px 0 rgba(0,28,36,.3);
    border-top: 1px solid #eef2f2;
}

.md-fences,
code,
tt {
    border: 1px solid #e7eaed;
    background-color: #f8f8f8;
    border-radius: 3px;
    padding: 0;
    padding: 2px 4px 0px 4px;
    font-size: 0.9em;
}

code {
    background-color: #f3f4f4;
    padding: 0 2px 0 2px;
}

.md-fences {
    margin-bottom: 15px;
    margin-top: 15px;
    padding-top: 8px;
    padding-bottom: 6px;
}


.md-task-list-item > input {
  margin-left: -1.3em;
}

@media print {
    html {
        font-size: 13px;
    }
    pre {
        page-break-inside: avoid;
        word-wrap: break-word;
    }
}

.md-fences {
	background-color: #f8f8f8;
}
#write pre.md-meta-block {
	padding: 1rem;
    font-size: 85%;
    line-height: 1.45;
    background-color: #f7f7f7;
    border: 0;
    border-radius: 3px;
    color: #777777;
    margin-top: 0 !important;
}

.mathjax-block>.code-tooltip {
	bottom: .375rem;
}

.md-mathjax-midline {
    background: #fafafa;
}

#write>h3.md-focus:before{
	left: -1.5625rem;
	top: .375rem;
}
#write>h4.md-focus:before{
	left: -1.5625rem;
	top: .285714286rem;
}
#write>h5.md-focus:before{
	left: -1.5625rem;
	top: .285714286rem;
}
#write>h6.md-focus:before{
	left: -1.5625rem;
	top: .285714286rem;
}
.md-image>.md-meta {
    /*border: 1px solid #ddd;*/
    border-radius: 3px;
    padding: 2px 0px 0px 4px;
    font-size: 0.9em;
    color: inherit;
}

.md-tag {
    color: #a7a7a7;
    opacity: 1;
}

.md-toc { 
    margin-top:20px;
    padding-bottom:20px;
}

.sidebar-tabs {
    border-bottom: none;
}

#typora-quick-open {
    border: 1px solid #ddd;
    background-color: #f8f8f8;
}

#typora-quick-open-item {
    background-color: #FAFAFA;
    border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee;
    border-style: solid;
    border-width: 1px;
}

/** focus mode */
.on-focus-mode blockquote {
    border-left-color: rgba(85, 85, 85, 0.12);
}

header, .context-menu, .megamenu-content, footer{
    font-family: "Segoe UI", "Arial", sans-serif;
}

.file-node-content:hover .file-node-icon,
.file-node-content:hover .file-node-open-state{
    visibility: visible;
}

.mac-seamless-mode #typora-sidebar {
    background-color: #fafafa;
    background-color: var(--side-bar-bg-color);
}

.md-lang {
    color: #b4654d;
}

/*.html-for-mac {
    --item-hover-bg-color: #E6F0FE;
}*/

#md-notification .btn {
    border: 0;
}

.dropdown-menu .divider {
    border-color: #e5e5e5;
    opacity: 0.4;
}

.ty-preferences .window-content {
    background-color: #fafafa;
}

.ty-preferences .nav-group-item.active {
    color: white;
    background: #999;
}

.menu-item-container a.menu-style-btn {
    background-color: #f5f8fa;
    background-image: linear-gradient( 180deg , hsla(0, 0%, 100%, 0.8), hsla(0, 0%, 100%, 0)); 
}



</style><title>产品文档V1.2</title>
</head>
<body class='typora-export os-windows typora-export-show-outline typora-export-no-collapse-outline'><div class='typora-export-content'>
<div class="typora-export-sidebar"><div class="outline-content"><li class="outline-item-wrapper outline-h1"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#产品介绍">产品介绍</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#产品概述">产品概述</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#产品架构"><strong>产品架构</strong></a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#产品功能">产品功能</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#应用场景">应用场景</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#综合数据治理运营提高数字化决策效率">综合数据治理运营，提高数字化决策效率</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#企业数据治理打造企业数据智能">企业数据治理，打造企业数据智能</a></div><ul class="outline-children"></ul></li></ul></li></ul></li><li class="outline-item-wrapper outline-h1"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#使用指南">使用指南</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#虎符使用简介">虎符使用简介</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#虎符的用户">虎符的用户</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#管理中心">管理中心</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#存储资源">存储资源</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#创建hive存储资源">创建Hive存储资源</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#创建postgresql存储资源">创建PostgreSql存储资源</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#工作空间">工作空间</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#创建工作空间">创建工作空间</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#切换存储资源">切换存储资源</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#删除工作空间">删除工作空间</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#用户管理">用户管理</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#角色管理">角色管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#账号管理">账号管理</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#权限管理">权限管理</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#空间权限">空间权限</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据权限">数据权限</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#通知管理">通知管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#企业设置">企业设置</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#系统设置">系统设置</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#告警中心">告警中心</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#告警配置">告警配置</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#告警记录">告警记录</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#规范设计">规范设计</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据调研">数据调研</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据owner">数据Owner</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据管理">数据管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#主题设计">主题设计</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#标准设计">标准设计</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#标准定义">标准定义</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#标准映射">标准映射</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#映射报告">映射报告</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#模型设计">模型设计</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#总线矩阵">总线矩阵</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#贴源模型">贴源模型</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#公共模型">公共模型</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#应用模型">应用模型</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#其他模型">其他模型</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#指标设计">指标设计</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据集成">数据集成</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#离线同步"><strong>离线同步</strong></a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#实时同步">实时同步</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#接口采集">接口采集</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#文件采集">文件采集</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#对象存储">对象存储</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#存储管理">存储管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#服务工具">服务工具</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#自定义表单">自定义表单</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据开发">数据开发</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#离线计算">离线计算</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#作业开发">作业开发</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#工作流程">工作流程</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#资源管理-1">资源管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#函数管理-1">函数管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#任务运维-1">任务运维</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#实时计算">实时计算</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#实时开发">实时开发</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#资源管理-2">资源管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#函数管理-2">函数管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#任务运维-2">任务运维</a></div><ul class="outline-children"></ul></li></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#指标管理">指标管理</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据质量">数据质量</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#概览-1">概览</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#监控规则">监控规则</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#任务管理">任务管理</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据资产">数据资产</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据地图">数据地图</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#全域数据">全域数据</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h2"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#数据服务">数据服务</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#概览-2">概览</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#api市场">API市场</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#api管理">API管理</a></div><ul class="outline-children"><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#我的api">我的API</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h4"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#我的申请">我的申请</a></div><ul class="outline-children"></ul></li></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#api调用">API调用</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#授权审批">授权审批</a></div><ul class="outline-children"></ul></li><li class="outline-item-wrapper outline-h3"><div class="outline-item"><span class="outline-expander"></span><a class="outline-label" href="#安全管理">安全管理</a></div><ul class="outline-children"></ul></li></ul></li></ul></li></div></div><div id='write'  class=''><h1 id='产品介绍'><span>产品介绍</span></h1><h2 id='产品概述'><span>产品概述</span></h2><p><span>		</span><span>虎符是一站式工业“人机料法环”多态数据开发与资产化管理系统，用于构建工业数据资源体系，让企业的全域数据资产在线，为数据挖掘、智能排产、数字孪生等基于数据的智能应用提供数据支撑，帮助企业掌握数据资产状态，为各业务提供统一、高效的数据服务，奠定“智慧大脑”的基础。</span></p><h2 id='产品架构'><strong><span>产品架构</span></strong></h2><p><img src=".\assets\1644809373105_image.png" referrerpolicy="no-referrer" alt="1644809373105_image"></p><p><span>	</span><span>雪浪虎符提供八大功能模块，支持对企业全域数据加工治理。功能模块包括：管理中心、规范设计、数据集成、数据开发、指标管理、数据质量、数据资产与数据服务。</span></p><h2 id='产品功能'><span>产品功能</span></h2><ul><li><span>管理中心</span></li></ul><p><span>提供平台的日常基础管理能力，包括定义平台开发模式、计算存储资源、用户角色管理、消息通知服务、企业门户设置等功能。</span></p><ul><li><span>告警中心</span></li></ul><p><span>用于对数据全生命周期进行监控告警，异常事件实时告警通知，管理着平台内所有配置的任务产生的告警信息。提供对数据集成、离线计算、实时计算、数据质量等多种类型的任务进行自定义告警配置，当监控的任务触发告警规则后，支持以邮件的方式通知相关人员。</span></p><ul><li><span>规范设计</span></li></ul><p><span>提供数据治理的规划设计功能，将业务和数据的需求转化为数据工程师可执行的规范与要求，功能包括主题域设计、数据标准、可视化建模、指标定义等，利于提高企业数据质量，统一口径与标准。</span></p><ul><li><span>数据集成</span></li></ul><p><span>提供对结构化、半结构化、非结构化数据的实时与增量采集，全部采用配置方式完成。功能包括离线采集、实时采集、接口采集、文件采集、对象存储、自定义表单、设备物联采集模块。</span></p><ul><li><span>数据开发</span></li></ul><p><span>具备海量数据实时、离线计算；支持流程化方式快速构建数据处理分析流程，支持对关系数据、时序数据、空间数据(BIM、GIS等)融合计算。</span></p><ul><li><span>指标管理</span></li></ul><p><span>零代码方式构建企业指标，通过规范化设计帮助企业指标统一计算口径与计算逻辑。</span></p><ul><li><span>数据质量</span></li></ul><p><span>数据全生命周期监控，数据处理全流程质量管控，异常事件实时通知。</span></p><ul><li><span>数据资产</span></li></ul><p><span>提供高效的元数据查询服务，支持查询并定位数据资产；数据地图与全域数据实现全文数据搜索与数据全景可视。</span></p><ul><li><span>数据服务</span></li></ul><p><span>提供高效便捷的API创建方式，实现API全链路的生命周期管理，支持API的安全访问管理，有效保障企业数据安全与高效使用。</span></p><h2 id='应用场景'><span>应用场景</span></h2><h3 id='综合数据治理运营提高数字化决策效率'><span>综合数据治理运营，提高数字化决策效率</span></h3><p><strong><span>场景：</span></strong><span>某公司是一家全球大型轮胎制造公司，生产端的各个分厂集中在亚太地区，销售端触达全球各地。</span></p><p><strong><span>痛点：</span></strong><span>集团在日常生产经营过程中存在大量的指标报表需要查看，因生产链路长，业务系统多、数据分散、数据质量较低等因素；指标计算需要大量人工参与计算且计算周期较长。</span></p><p><strong><span>解决方案：</span></strong></p><ul><li><span>数据集成：通过配置的方式将企业内分散的数据进行汇总</span></li><li><span>数据建模：通过对业务的理解，构建以业务为主题的数据模型</span></li><li><span>指标管理：基于采集的数据与模型的融合，通过配置化的方式完成指标创建</span></li></ul><p><strong><span>价值：</span></strong></p><ul><li><span>构建自动化的数据流：让数据自动流动，减少人为参与。</span></li><li><span>提高数据质量：规范约束数据质量，自动完成数据质量监控。</span></li><li><span>提高数据研发效率：抽象数据模型，支持更多场景。</span></li></ul><h3 id='企业数据治理打造企业数据智能'><span>企业数据治理，打造企业数据智能</span></h3><p><strong><span>场景：</span></strong><span>某公司为国内民用飞机制造商，在飞机制造过程中零部件高达130多万，且业务系统错综复杂。</span></p><p><strong><span>痛点：</span></strong><span>在传统交付飞机过程中会配套大量纸质文件，但无法直观看到飞机状态信息做日常的管理与运维，则需要制造商交付一台数字飞机，能够实时查看飞机的变化以及零部件信息等。</span></p><p><strong><span>解决方案：</span></strong></p><ul><li><span>数据集成：采集汇聚多源异构数据</span></li><li><span>数据治理：对企业内数据总体规划、设计、开发进行数据治理</span></li><li><span>模型设计：构建飞机的三维模型</span></li><li><span>数据与模型融合：将飞机三维模型与实时数据融合，构建数字飞机。</span></li></ul><p><strong><span>价值：</span></strong></p><ul><li><span>飞机数字化交付（线下转线上，结构化的交付内容，数字化的交付档案）。</span></li><li><span>生产过程的可视化和透明化，实现生产过程信息的全面集成。</span></li><li><span>飞机质量问题快速定位与检索。</span></li><li><span>数据变成资产，构建了飞机数据纪实载体。</span></li></ul><h1 id='使用指南'><span>使用指南</span></h1><h2 id='虎符使用简介'><span>虎符使用简介</span></h2><p><span>		</span><span>虎符数据资源管理平台是对企业内的全域数据进行全生命周期的管理，平台对管理与存储进行了拆分，用户可以自由选择底层的数据存储资源。数据治理支持底代码开发方式，以便于降低企业对大数据平台的使用门槛，帮助企业快速构建从数据接入到数据治理的智能数据系统，从而消除数据孤岛，统一数据标准，加快数据变现，实现数字化转型。</span></p><h2 id='虎符的用户'><span>虎符的用户</span></h2><p><span>虎符用户主要为企业信息化部门的工程师，虎符在日常使用过程中推荐设置三类角色，可基于职能进行划分，分别是管理员、开发者、访客；如果三类角色无法满足需求，用户可新增自定义角色。</span></p><ul><li><span>管理员</span></li></ul><p><span>管理员是平台内最高管理者，拥有绝对的管理权限；包括工作空间的创建、底层数据存储资源的选择与切换、角色账号管理、数据治理所有功能的查看、审核、编辑等</span></p><ul><li><span>开发者</span></li></ul><p><span>面向数据开发工程师，基于管理员设计好的工作空间与存储，进行日常的数据开发工作，功能权限包括规范设计、数据集成、数据开发、指标管理、数据质量、数据资产、数据服务功能</span></p><ul><li><span>访客</span></li></ul><p><span>访客仅具备只读权限，可按需分配查看权限。</span></p><h2 id='管理中心'><span>管理中心</span></h2><h3 id='存储资源'><span>存储资源</span></h3><p><span>在使用虎符之前平台管理员需先进行存储资源的配置，存储资源的选择需根据实际业务场景选择符合需求的数据库，用于存储数据治理过程中的数据，虎符支持的存储资源有：Hive、PostgreSql。</span></p><h4 id='创建hive存储资源'><span>创建Hive存储资源</span></h4><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>管理中心 &gt; 存储管理</span></strong></p><p><span>3、在存储管理页面，单击右上角</span><strong><span>新建存储资源</span></strong><span>按钮，在</span><strong><span>新建存储资源</span></strong><span>中，选择Hive，配置各项参数</span></p><p><img src=".\assets\1644809373572_image.png" referrerpolicy="no-referrer" alt="1644809373572_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>存储资源类型</span></td><td style='text-align:center;' ><span>系统对存储资源的支持，支持Hive、PostgreSql</span></td></tr><tr><td style='text-align:center;' ><span>存储资源名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>存储资源描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>服务器</span></td><td style='text-align:center;' ><span>数据库对应的服务器IP地址</span></td></tr><tr><td style='text-align:center;' ><span>端口</span></td><td style='text-align:center;' ><span>数据库对应的端口</span></td></tr><tr><td style='text-align:center;' ><span>用户名</span></td><td style='text-align:center;' ><span>数据库访问账号</span></td></tr><tr><td style='text-align:center;' ><span>密码</span></td><td style='text-align:center;' ><span>数据库访问密码</span></td></tr><tr><td style='text-align:center;' ><span>连接信息</span></td><td style='text-align:center;' ><span>连接信息是基于填写的信息，自动完成拼装</span></td></tr></tbody></table></figure><p><span>4、点击</span><strong><span>连接测试</span></strong><span>测试数据源是否可以和虎符进行正常的连通。</span></p><p><strong><span>如果连接测试失败，您可以根据网络连通常见问题进行排查。详细内容，请参见</span></strong><a href='http://虎符常见问题连接'><span>网络连通的常见题</span></a><span>。</span></p><p><span>5、测试成功后，单击</span><strong><span>确定</span></strong><span>，完成Hive存储资源的创建。</span></p><h4 id='创建postgresql存储资源'><span>创建PostgreSql存储资源</span></h4><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>管理中心 &gt; 存储管理</span></strong></p><p><span>3、在存储管理页面，单击右上角</span><strong><span>新建存储资源</span></strong><span>按钮，在</span><strong><span>新建存储资源</span></strong><span>中，选择PostgreSql配置各项参数</span></p><h3 id='工作空间'><span>工作空间</span></h3><p><span>为了保障数据治理的安全与稳定可靠，工作空间采用逻辑隔离，用户可以按需创建多个工作空间。</span></p><h4 id='创建工作空间'><span>创建工作空间</span></h4><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>管理中心 &gt; 工作空间</span></strong></p><p><span>3、在工作空间页面，单击右上角</span><strong><span>新建工作空间</span></strong><span>按钮，在新建工作空间页面中，配置各项参数</span></p><p><img src=".\assets\1644809373617_image.png" referrerpolicy="no-referrer" alt="1644809373617_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>空间名称</span></td><td style='text-align:center;' ><span>1-128个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>存储资源</span></td><td style='text-align:center;' ><span>存储资源为工作空间提供存储能力，可以选择或者添加存储资源</span></td></tr></tbody></table></figure><p>&nbsp;</p><h4 id='切换存储资源'><span>切换存储资源</span></h4><p><span>随着企业业务的发展，当前的存储已不适合继续支撑数据的存储，则需要进行存储资源的切换，切换存储，系统会将之前的所有数据与元数据进行一次克隆，存储在新的存储资源上，并且会保留之前的工作空间，以保证原存储能够继续执行日常工作。</span></p><p><span>注：切换存储资源风险较高，影响范围包括数据开发的脚本模式，若切换之后可能存在脚本不可用情况，其他功能可正常运行。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、在</span><strong><span>工作空间</span></strong><span>列表中点击列表中的</span><strong><span>切换存储</span></strong><span>按钮</span></p><p><img src=".\assets\1644809373636_image.png" referrerpolicy="no-referrer" alt="1644809373636_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>空间名称</span></td><td style='text-align:center;' ><span>1-128个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>原存储资源</span></td><td style='text-align:center;' ><span>系统显示当前工作空间的存储资源</span></td></tr><tr><td style='text-align:center;' ><span>目标存储资源</span></td><td style='text-align:center;' ><span>选择需要切换到的目标存储资源</span></td></tr></tbody></table></figure><h4 id='删除工作空间'><span>删除工作空间</span></h4><p><span>删除工作空间风险较高，在删除工作空间时需要进行二次确认。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、在</span><strong><span>工作空间</span></strong><span>列表中点击列表中的</span><strong><span>删除</span></strong><span>按钮</span></p><p><span>2、在删除弹窗中需输入工作空间名称做二次确认删除。</span></p><p><img src=".\assets\1644809373672_image.png" referrerpolicy="no-referrer" alt="1644809373672_image"></p><p>&nbsp;</p><h3 id='用户管理'><span>用户管理</span></h3><p><span>用户管理分为角色管理和账号管理两个模块，角色系统默认提供一个系统管理员，其他类型角色用户可自定义创建。</span></p><h4 id='角色管理'><span>角色管理</span></h4><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>管理中心 &gt; 用户管理</span></strong></p><p><span>3、在用户管理页面选择角色管理，单击右上角</span><strong><span>新建角色</span></strong><span>按钮，配置角色各项参数。</span></p><p><img src=".\assets\1644809373701_image.png" referrerpolicy="no-referrer" alt="1644809373701_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>角色名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>角色描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>功能权限</span></td><td style='text-align:center;' ><span>依据功能列表进行勾选，菜单权限具备查看、编辑两个选项。</span><br><span>只有具备了查看权限才能具备编辑权限</span></td></tr></tbody></table></figure><h4 id='账号管理'><span>账号管理</span></h4><p><span>账号的创建可直接关联角色，此时的账号只能登录虎符，无法进入工作空间进行开发，需要为账号分配工作空间权限。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、在</span><strong><span>用户管理</span></strong><span>页面内，选择账号管理，单击右上角“新建账号”按钮，配置账号各项参数。</span></p><p><img src=".\assets\1644809373780_image.png" referrerpolicy="no-referrer" alt="1644809373780_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>账号</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>登录密码</span></td><td style='text-align:center;' ><span>6-32个字符，至少包含大小写字母、数字和特殊字符中的2种</span></td></tr><tr><td style='text-align:center;' ><span>确认登录密码</span></td><td style='text-align:center;' ><span>6-32个字符，至少包含大小写字母、数字和特殊字符中的2种</span></td></tr><tr><td style='text-align:center;' ><span>姓名</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>手机号</span></td><td style='text-align:center;' ><span>11位用户手机号</span></td></tr><tr><td style='text-align:center;' ><span>邮箱</span></td><td style='text-align:center;' ><span>用户邮箱</span></td></tr><tr><td style='text-align:center;' ><span>角色</span></td><td style='text-align:center;' ><span>下拉框选择用户角色</span></td></tr><tr><td style='text-align:center;' ><span>部门</span></td><td style='text-align:center;' ><span>无限制</span></td></tr><tr><td style='text-align:center;' ><span>职位</span></td><td style='text-align:center;' ><span>无限制</span></td></tr></tbody></table></figure><h3 id='权限管理'><span>权限管理</span></h3><h4 id='空间权限'><span>空间权限</span></h4><p><span>空间权限是赋予用户所能进入的开发环境。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>权限中心 &gt; 空间权限</span></strong></p><p><span>3、在列表中选择</span><strong><span>工作空间</span></strong><span>列，单击添加选择给该账号赋予的空间权限。</span></p><p><img src=".\assets\1644809373838_image.png" referrerpolicy="no-referrer" alt="1644809373838_image"></p><h4 id='数据权限'><span>数据权限</span></h4><p><span>数据权限是基于用户在某一个工作空间内，所能查看或编辑的数据表，默认用户能查看并编辑所有数据表。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>权限管理 &gt; 数据权限</span></strong></p><p><span>3、在列表中单击用户前面的“</span><strong><span>+</span></strong><span>”，会显示用户当前所有的工作空间，每个工作空间都支持查看权限与编辑权限</span></p><p><img src=".\assets\1644809373911_image.png" referrerpolicy="no-referrer" alt="1644809373911_image"></p><p><span>4、点击</span><strong><span>编辑</span></strong><span>出现的弹窗则可以在当前工作空间下用户可查看或编辑的数据表。</span></p><p><img src=".\assets\1644809373984_image.png" referrerpolicy="no-referrer" alt="1644809373984_image"></p><h3 id='通知管理'><span>通知管理</span></h3><p><span>通知管理用于配置基础的通知服务，基于此服务对外发送消息。支持邮件服务。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>通知管理</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374042_image.png" referrerpolicy="no-referrer" alt="1644809374042_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>邮箱服务器类型</span></td><td style='text-align:center;' ><span>系统默认采用SMTP类型</span></td></tr><tr><td style='text-align:center;' ><span>发件人昵称</span></td><td style='text-align:center;' ><span>邮件对外发送的默认称呼，2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>邮箱服务器</span></td><td style='text-align:center;' ><span>邮箱服务器地址</span></td></tr><tr><td style='text-align:center;' ><span>端口</span></td><td style='text-align:center;' ><span>邮箱服务器端口</span></td></tr><tr><td style='text-align:center;' ><span>用户名</span></td><td style='text-align:center;' ><span>邮箱服务器用户名</span></td></tr><tr><td style='text-align:center;' ><span>密码</span></td><td style='text-align:center;' ><span>邮箱服务器密码</span></td></tr><tr><td style='text-align:center;' ><span>是否启动SSL</span></td><td style='text-align:center;' ><span>请选择是否开启SSL(Secure Sockets Layer  安全套接字协议)</span></td></tr></tbody></table></figure><h3 id='企业设置'><span>企业设置</span></h3><p><span>门户设置用于构建自定义的软件门户样式，包括浏览器的Title与登录页的名称和背景图。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>企业设置</span></strong><span> </span><strong><span>&gt; 门户设置</span></strong><span> 配置各项参数。</span></p><p><img src=".\assets\1644809374105_image.png" referrerpolicy="no-referrer" alt="1644809374105_image"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>公司名称</span></td><td><span>用户设置浏览器Title名称与登录之后左上角Logo名称</span></td></tr><tr><td><span>展示Logo</span></td><td><span>登录系统之后显示的名称，建议尺寸80*80</span></td></tr><tr><td><span>登录名称</span></td><td><span>登录页展示的内容</span></td></tr><tr><td><span>背景图</span></td><td><span>登录页整体的背景图，建议尺寸1920*1080</span></td></tr></tbody></table></figure><h3 id='系统设置'><span>系统设置</span></h3><p><span>系统设置用户注册和更新系统License，注册之后会显示当前系统的可用天数与截至日期。</span></p><p><img src=".\assets\1644809374143_image.png" referrerpolicy="no-referrer" alt="1644809374143_image"></p><h2 id='告警中心'><span>告警中心</span></h2><h3 id='告警配置'><span>告警配置</span></h3><p><span>告警配置提供对数据集成、离线计算、实时计算、数据质量等多种类型的任务进行自定义告警配置，支持以邮件的方式通知相关人员。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录虎符平台</span></p><p><span>2、在虎符首页右上角点击用户头像，选择</span><strong><span>告警中心 &gt; 告警配置</span></strong><span>。</span></p><p><img src="./assets/image-20221216110509213.png" referrerpolicy="no-referrer" alt="image-20221216110509213"></p><p><span>3、新建告警配置：点击新建告警任务，填写对应信息。</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>告警主题</span></td><td><span>可选择 </span><strong><span>离线计算、实时计算、数据质量、数据集成</span></strong><span> 四种类型的任务</span></td></tr><tr><td><span>通知人</span></td><td><span>选择需要通知的人的虎符账号</span></td></tr><tr><td><span>通知方式</span></td><td><span>目前只支持 邮件方式</span></td></tr><tr><td><span>数据表/任务表</span></td><td><span>选择相应主题下数据表或者已发布的任务</span></td></tr><tr><td><span>报警原因</span></td><td><span>选择需要触发报警的条件</span></td></tr></tbody></table></figure><p><span>注：虎符账号对应的邮箱必须是有效的。</span></p><p><img src="./assets/告警配置.jpg" referrerpolicy="no-referrer" alt="告警配置"></p><p><strong><span>离线计算</span></strong></p><p><span>对于告警主题为离线计算的类型时，选择某个工作流程，可自定义配置告警规则，如：任务失败、任务完成、自定义设置任务运行超时、任务未完成等多种规则，当任务触发告警规则后，会通过邮件的方式通知相关人员。</span></p><p><img src="./assets/离线计算.jpg" referrerpolicy="no-referrer" alt="离线计算"><span> </span></p><p><strong><span>实时计算</span></strong></p><p><span>对于告警主题为实时计算的类型时，选择某个实时开发任务，可自定义配置告警规则，如：任务失败、任务完成、自定义设置任务运行超时、任务未完成等多种规则，当任务触发告警规则后，会通过邮件的方式通知相关人员。</span></p><p><img src="./assets/实时计算.jpg" referrerpolicy="no-referrer" alt="实时计算"><span> </span></p><p><strong><span>数据质量</span></strong></p><p><span>对于告警主题为数据质量的类型时，选择某张数据表，可自定义配置告警规则为SQL语句出错、数据质量问题，当任务触发告警规则后，会通过邮件的方式通知相关人员。</span></p><p><img src="./assets/数据质量.jpg" referrerpolicy="no-referrer" alt="数据质量"><span> </span></p><p><strong><span>数据集成</span></strong></p><p><span>对于告警主题为数据集成的类型时，选择某个任务类型，离线集成的任务类型有：离线采集、实时采集、接口采集，然后勾选某个任务名称。可自定义配置告警规则，如：任务失败、任务完成、任务同步失败条数超过某个阈值等告警规则，当任务触发告警规则后，会通过邮件的方式通知相关人员。</span></p><p><img src="./assets/数据集成.jpg" referrerpolicy="no-referrer" alt="数据集成"><span> </span></p><h3 id='告警记录'><span>告警记录</span></h3><p><span>告警记录用于管理平台内产生的所有告警信息。告警任务设置成功之后，每一次的发送记录都会在告警记录中显示，记录的状态会显示发送成功/发送失败。</span></p><p><img src="./assets/image-20221216111145486.png" referrerpolicy="no-referrer" alt="image-20221216111145486"></p><h2 id='规范设计'><span>规范设计</span></h2><h3 id='数据调研'><span>数据调研</span></h3><p><span>数据调研即对业务的理解与数据的梳理将结果性内容配置到管理工具内。</span></p><h4 id='数据owner'><span>数据Owner</span></h4><p><span>数据owner用于定义数据的责任对象。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 数据调研 &gt; 数据Owner</span></strong><span>单击右上角新建Owner配置各项参数。</span></p><p><span>Owner名称可以为个人或者部门。</span></p><p><img src=".\assets\1644809374168_image.png" referrerpolicy="no-referrer" alt="1644809374168_image"></p><h4 id='数据管理'><span>数据管理</span></h4><p><span>在开始同步业务数据至虎符之前，需要将业务系统数据源注册至虎符，虎符支持的数据源有：</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>类别</span></th><th style='text-align:center;' ><span>数据源类型</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>大数据</span></td><td style='text-align:center;' ><span>MaxCompute、Hive、SAP HANA</span></td></tr><tr><td style='text-align:center;' ><span>文件数据源</span></td><td style='text-align:center;' ><span>HDFS</span></td></tr><tr><td style='text-align:center;' ><span>关系型数据源</span></td><td style='text-align:center;' ><span>MySQL、SQL Server、PostgreSQL、IBM DB2、Oracle、人大金仓、达梦</span></td></tr><tr><td style='text-align:center;' ><span>NoSQL数据源</span></td><td style='text-align:center;' ><span>HBase、MongoDB</span></td></tr><tr><td style='text-align:center;' ><span>消息队列数据源</span></td><td style='text-align:center;' ><span>Kafka、MQTT</span></td></tr><tr><td style='text-align:center;' ><span>时序数据库</span></td><td style='text-align:center;' ><span>Open TSDB</span></td></tr><tr><td style='text-align:center;' ><span>图数据库</span></td><td style='text-align:center;' ><span>Dgraph</span></td></tr></tbody></table></figure><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 数据调研 &gt; 数据管理</span></strong><span>单击右上角</span><strong><span>新建数据源</span></strong><span>配置各项参数。</span></p><p><span>以Mysql为例</span></p><p><img src=".\assets\1644809374197_image.png" referrerpolicy="no-referrer" alt="1644809374197_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>数据源类型</span></td><td style='text-align:center;' ><span>此处为选择项，用于筛选需要注册的数据源类型</span></td></tr><tr><td style='text-align:center;' ><span>数据源名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>数据源描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>服务器</span></td><td style='text-align:center;' ><span>数据库所属的IP地址</span></td></tr><tr><td style='text-align:center;' ><span>端口</span></td><td style='text-align:center;' ><span>数据库所属的端口</span></td></tr><tr><td style='text-align:center;' ><span>数据库</span></td><td style='text-align:center;' ><span>数据库名称</span></td></tr><tr><td style='text-align:center;' ><span>用户名</span></td><td style='text-align:center;' ><span>数据库用户名</span></td></tr><tr><td style='text-align:center;' ><span>密码</span></td><td style='text-align:center;' ><span>数据库密码</span></td></tr></tbody></table></figure><h4 id='主题设计'><span>主题设计</span></h4><p><span>主题设计用于设计分层架构表达对数据的分类和定义。</span></p><p><span>主题设计默认分为四层，分别是：贴源层、公共层、应用层、其他层</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>分类</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><div style="width:50pt"><span>贴源层</span></div></td><td style='text-align:center;' ><span>存放未经过处理的原始数据至数据仓库系统，结构上与源系统保持一致，是数据仓库的数据准备区。主题设计主要围绕数据来源展开，例如MES系统、ERP系统等。</span></td></tr><tr><td style='text-align:center;' ><span>公共层</span></td><td style='text-align:center;' ><span>又称通用数据模型层，包括DIM维度表、DWD和DWS，由ODS层数据加工而成。主要完成数据加工与整合，建立一致性的维度，构建可复用的面向分析和统计的明细事实表，以及汇总公共粒度的指标。主题设计主要围绕业务属性展开，如生产、质量、销售、物流等。</span></td></tr><tr><td style='text-align:center;' ><span>应用层</span></td><td style='text-align:center;' ><span>存放数据产品个性化的统计指标数据。主题设计主要围绕应用展开，如BI、大屏、app等。</span></td></tr><tr><td style='text-align:center;' ><span>其他层</span></td><td style='text-align:center;' ><span>存放数据临时性模型与不符合数仓规范的模型，主题设计不做特殊要求。</span></td></tr></tbody></table></figure><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 数据调研 &gt; 主题设计</span></strong><span>单击右上角</span><strong><span>新建主题</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374264_image.png" referrerpolicy="no-referrer" alt="1644809374264_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>名称</span></td><td style='text-align:center;' ><span>主题中文名称，2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>上级主题</span></td><td style='text-align:center;' ><span>主题的上一层级，默认可以选择贴源层、公共层、应用层、其他层</span></td></tr><tr><td style='text-align:center;' ><span>描述</span></td><td style='text-align:center;' ><span>主题的描述性信息，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><h3 id='标准设计'><span>标准设计</span></h3><p><span>数据标准用于制定企业层面共同遵守的数据含义与业务规则，它描述的是企业对某个数据的共同理解。</span></p><h4 id='标准定义'><span>标准定义</span></h4><p><span>标准定义的目录默认采用</span><strong><span>主题设计</span></strong><span>中的公共层主题；每一个标准只有在</span><strong><span>发布</span></strong><span>之后才能生效，可以被数据模型引用，支持系统自动监测平台内和已注册数据源的元数据是否符合标准。</span></p><p><strong><span>新建标准</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 标准设计 &gt; 标准定义</span></strong><span>单击右上角</span><strong><span>新建标准</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374297_image.png" referrerpolicy="no-referrer" alt="1644809374297_image"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>中文名称</span></td><td><span>标准中文描述，工作空间内唯一，1-128个字符，支持中文、数字和下划线</span></td></tr><tr><td><span>英文名称</span></td><td><span>英文名称，工作空间内唯一，1-128个字符，支持英文字母、数字和下划线</span></td></tr><tr><td><span>主题</span></td><td><span>下拉框选择主题，选择内容为主题设计中的公共层主题</span></td></tr><tr><td><span>业务属性</span></td><td><span>业务属性为KV形式，可自定义数据业务属性</span></td></tr><tr><td><span>数据类型</span></td><td><span>支持字符型(String)、数字型(Number)、日期型(Date)、日期时间型(DataTime)</span></td></tr><tr><td><span>数据长度</span></td><td><span>数据长度由用户自定义</span></td></tr><tr><td><span>度量单位</span></td><td><span>支持米(m)、平方米(㎡)、牛·米(N·m)、摄氏度(℃)、千克(kg)、瓦(W)、秒(s)、天(d)、分(min)</span></td></tr><tr><td><span>是否允许为空</span></td><td><span>单选</span><strong><span>是</span></strong><span>/</span><strong><span>否</span></strong></td></tr><tr><td><span>是否允许重复</span></td><td><span>单选</span><strong><span>是</span></strong><span>/</span><strong><span>否</span></strong></td></tr><tr><td><span>取值范围</span></td><td><span>取值范围支持大于、小于、等于；逻辑关系支持或、且、非</span></td></tr><tr><td><span>枚举范围</span></td><td><span>枚举范围支持用户自定义编写</span></td></tr><tr><td><span>正则表达式</span></td><td><span>自定义编写正则表达式</span></td></tr><tr><td><span>数据Owner</span></td><td><span>下拉框选择数据Owner，数据来源为</span><strong><span>数据调用 &gt; 数据Owner</span></strong><span>中内容</span></td></tr></tbody></table></figure><p><strong><span>一键导入</span></strong></p><p><span>支持用户基于模板填写完成之后，将文件一键导入到平台内。若导入过程中出现重复系统会提示</span><strong><span>跳过</span></strong><span>或</span><strong><span>覆盖</span></strong><span>。</span></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 标准设计 &gt; 标准定义</span></strong><span>单击右上角</span><strong><span>一键导入</span></strong><span>进入弹窗。</span></p><p><img src=".\assets\1644809374353_image.png" referrerpolicy="no-referrer" alt="1644809374353_image"></p><p><span>3、下载模板</span></p><p><span>4、上传编辑好的模板至平台</span></p><h4 id='标准映射'><span>标准映射</span></h4><p><span>系统1分钟检查一次平台内的模型字段与已发布的标准是否匹配，匹配规则为英文名称相同。若匹配到则在“待绑定数量”列中会有数量提示，点击</span><strong><span>绑定详情</span></strong><span>进入绑定管理。</span></p><p><strong><span>绑定详情</span></strong></p><p><span>维护是将该标准的中文描述信息，更新到模型字段上；绑定是将标准与字段进行一个关联，绑定完成之后模型字段会打上</span><strong><span>标准</span></strong><span>标签。</span></p><p><img src=".\assets\1644809374389_image.png" referrerpolicy="no-referrer" alt="1644809374389_image"></p><p><span>1、在</span><strong><span>标准映射</span></strong><span>页面单击</span><strong><span>绑定详情</span></strong><span>，进入绑定详情页面。</span></p><p><img src=".\assets\1644809374425_image.png" referrerpolicy="no-referrer" alt="1644809374425_image"></p><p><span>2、单击维护，则标准的中文信息会更新模型字段中文信息。</span></p><p><span>3、单击绑定，则标准与模型字段完成绑定。</span></p><p><span>4、取消绑定，字段的中文信息不会更新，标准与模型字段的关联关系会断开。</span></p><h4 id='映射报告'><span>映射报告</span></h4><p><span>映射报告是将系统监测平台本身与已注册的数据源的元数据信息，计算命中（符合）标准的比例，形成一份监测报告。报告会显示命中的比例以及字段命中数量，同时支持报告下载。</span></p><p><img src=".\assets\1644809374494_image.png" referrerpolicy="no-referrer" alt="1644809374494_image"></p><h3 id='模型设计'><span>模型设计</span></h3><h4 id='总线矩阵'><span>总线矩阵</span></h4><p><span>总线矩阵是对企业数仓规划设计的一种方式，行是业务过程，列是公共维度；通过总线矩阵，可以对整个数仓的结构有一个清晰的了解，能够看出某个业务过程包含哪些通用维度。通过总线矩阵建设数据结构框架，可以处理不同的以过程为中心的维度模型的实现，且他们的实现严格遵守一致性维度。</span></p><p><span>总线矩阵通过创建事实行与维度列，通过构建行列之间的关系完成总线矩阵的设计。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 模型设计 &gt; 总线矩阵</span></strong><span>进入列表页面。</span></p><p><span>3、新建事实行，单击右上角</span><strong><span>新建事实行</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374538_image.png" referrerpolicy="no-referrer" alt="1644809374538_image"></p><p><span>4、新建维度列，单击右上角</span><strong><span>新建维度列</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374563_image.png" referrerpolicy="no-referrer" alt="1644809374563_image"></p><p><span>5、构建业务关系：业务关系是从业务角度理解，将行列之间的业务关系进行打勾关联（</span>✅<span>）。</span></p><p><span>6、构建逻辑关系：每个事实行与维度列都可以绑定一张数据表，用于构建逻辑关系，单击行或者列出现表关联，关联之后会出现链接标识，则代表关联成功（</span>🔗<span>）。</span></p><p><img src=".\assets\1644809374592_image.png" referrerpolicy="no-referrer" alt="1644809374592_image"></p><p><span>同时在矩阵中行列相交处，单击选择</span><strong><span>关联设置</span></strong><span>进行表之间的逻辑关联，</span></p><p><img src=".\assets\1644809374674_image.png" referrerpolicy="no-referrer" alt="1644809374674_image"></p><p><span>通过选择事实与维度的字段进行关联，完成表与表之间的逻辑关系。</span></p><h4 id='贴源模型'><span>贴源模型</span></h4><p><span>存放未经过处理的原始数据至数据仓库系统，结构上与源系统保持一致，是数据仓库的数据准备区。主题设计主要围绕数据来源展开，例如MES系统、ERP系统等。</span></p><p><span>模型层级前缀为：</span><strong><span>ods_</span></strong></p><h4 id='公共模型'><span>公共模型</span></h4><p><span>又称通用数据模型层，包括DIM维度表、DWD和DWS，由ODS层数据加工而成。主要完成数据加工与整合，建立一致性的维度，构建可复用的面向分析和统计的明细事实表，以及汇总公共粒度的指标。主题设计主要围绕业务属性展开，如生产、质量、销售、物流等。</span></p><p><span>模型层级前缀为：</span><strong><span>dwd_</span></strong><span>、 </span><strong><span>dws_</span></strong><span>、</span><strong><span>dim_</span></strong></p><h4 id='应用模型'><span>应用模型</span></h4><p><span>存放数据产品个性化的统计指标数据。主题设计主要围绕应用展开，如BI、大屏、app等。</span></p><p><span>模型层级前缀为：</span><strong><span>ads_</span></strong></p><h4 id='其他模型'><span>其他模型</span></h4><p><span>存放数据临时性模型与不符合数仓规范的模型，主题设计不做特殊要求。</span></p><p><span>模型层级前缀为：</span><strong><span>tmp_</span></strong><span>、其他</span></p><h3 id='指标设计'><span>指标设计</span></h3><p><span>指标设计用于将业务指标录入，并定义清楚指标的计算逻辑与业务逻辑；指标设计包含单指标与分析模型。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>我的指标</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 指标定义 &gt; 我的指标</span></strong><span>进入列表页面。</span></p><p><span>3、单击右上角</span><strong><span>新建指标</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374723_image.png" referrerpolicy="no-referrer" alt="1644809374723_image"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>指标编码</span></td><td><span>系统自动生成</span></td></tr><tr><td><span>指标名称</span></td><td><span>指标中文名称，指标名称需唯一，1-128个字符，无限制</span></td></tr><tr><td><span>业务创建人</span></td><td><span>需求来源人</span></td></tr><tr><td><span>数据Owner</span></td><td><span>下拉框选择数据Owner，数据来源为</span><strong><span>数据调用 &gt; 数据Owner</span></strong><span>中内容</span></td></tr><tr><td><span>主题</span></td><td><span>下拉框选择主题，选择内容为主题设计中的公共层主题</span></td></tr><tr><td><span>业务定义</span></td><td><span>当前指标的业务场景与业务描述，1-128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>计算规则</span></td><td><span>当前指标的计算逻辑，1-128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>指标类型</span></td><td><span>单一指标即为原子指标，多指标计算为衍生指标。</span></td></tr><tr><td><span>时效属性</span></td><td><span>采用离线开发的为离线指标，实时开发为实时指标。</span></td></tr><tr><td><span>数据来源表</span></td><td><span>可选择数据的来源数据表</span></td></tr><tr><td><span>指标性质</span></td><td><span>指标未进行汇总求和的为明细指标，否则为汇总指标</span></td></tr><tr><td><span>时间粒度</span></td><td><span>统计汇总的最小时间单位，明细指标不需要设置。</span></td></tr><tr><td><span>指标精度</span></td><td><span>指标小数点后保留几位。如1</span></td></tr><tr><td><span>指标单位</span></td><td><span>指标的单位如“个”、“元”</span></td></tr><tr><td><span>可用分析维度</span></td><td><span>可用于分析的维度</span></td></tr><tr><td><span>同步配置</span></td><td><span>指标数据要同步的时间</span></td></tr></tbody></table></figure><p><strong><span>我的分析模型</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>规范设计 &gt; 指标定义 &gt; 我分析模型</span></strong><span>进入列表页面。</span></p><p><span>3、单击右上角</span><strong><span>新建模型</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374802_image.png" referrerpolicy="no-referrer" alt="1644809374802_image"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>模型名称</span></td><td><span>模型中文名称，模型名称需唯一，2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>业务创建人</span></td><td><span>需求来源人</span></td></tr><tr><td><span>数据Owner</span></td><td><span>下拉框选择数据Owner，数据来源为</span><strong><span>数据调用 &gt; 数据Owner</span></strong><span>中内容</span></td></tr><tr><td><span>业务定义</span></td><td><span>当前指标的业务场景与业务描述，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>模型类型</span></td><td><span>汇总模型与明细模型</span></td></tr><tr><td><span>时效属性</span></td><td><span>仅支持离线</span></td></tr><tr><td><span>指标项</span></td><td><span>可选择已定义的</span><strong><span>我的指标</span></strong></td></tr><tr><td><span>维度项</span></td><td><span>可用于分析的维度</span></td></tr><tr><td><span>同步配置</span></td><td><span>指标数据要同步的时间</span></td></tr></tbody></table></figure><h2 id='数据集成'><span>数据集成</span></h2><h3 id='离线同步'><strong><span>离线同步</span></strong></h3><p><span>离线同步通过简单的配置，基于自定义的调度周期，完成海量数据迁移，支持多种异构数据源的全量与增量同步。</span></p><p><span>离线同步支持的数据源类型：</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>数据源类型</span></th><th style='text-align:center;' ><span>读取</span></th><th style='text-align:center;' ><span>写入</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>Mysql</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>SqlServer</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>PostgreSql</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>DB2</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Oracle</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Sap Hana</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>kingbase（人大金仓）</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>dm（达梦）</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Hive</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>HBase</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Mongodb</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>HDFS</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Open TSDB</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>elasticsearch</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr></tbody></table></figure><h3 id='实时同步'><span>实时同步</span></h3><p><span>实时同步通过简单的配置，达到数据秒级从源端到目标端的同步，为处理或分析流数据的程序构建数据流管道。</span></p><p><span>实时同步支持的数据源类型：</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>数据源类型</span></th><th style='text-align:center;' ><span>读取</span></th><th style='text-align:center;' ><span>写入</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>Kafka</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>MQTT</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>--</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Mysql</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>SqlServer</span></td><td style='text-align:center;' ><span>--</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>PostgreSql</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Oracle</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>kingbase（人大金仓）</span></td><td style='text-align:center;' ><span>--</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>dm（达梦）</span></td><td style='text-align:center;' ><span>--</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>Hive</span></td><td style='text-align:center;' ><span>--</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>源端不支持CDC</span></td></tr><tr><td style='text-align:center;' ><span>Mongodb</span></td><td style='text-align:center;' ><span>√</span></td><td style='text-align:center;' ><span>--</span></td><td style='text-align:center;' >&nbsp;</td></tr></tbody></table></figure><h3 id='接口采集'><span>接口采集</span></h3><p><span>接口采集支持Http/Https、WebService协议与其他开放平台组件，通过配置的方式快速完成数据采集。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>Http/Https</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据集成 &gt; 接口采集 &gt; Http/Https</span></strong><span>进入列表页面。</span></p><p><span>3、点击</span><strong><span>新建任务</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374865_image.png" referrerpolicy="no-referrer" alt="1644809374865_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>类型</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>任务名称</span></td><td style='text-align:center;' ><span>任务名称，接口采集内唯一，2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>请求方式</span></td><td style='text-align:center;' ><span>后端服务接口通信方式，单选</span></td></tr><tr><td style='text-align:center;' ><span>URL</span></td><td style='text-align:center;' ><span>后端服务接口地址</span></td></tr><tr><td style='text-align:center;' ><span>认证</span></td><td style='text-align:center;' ><span>认证分为三种方式</span><br><span>API密钥：填写key与Value</span><br><span>Token令牌：填写访问Token</span><br><span>自定义认证：通过上传认证jar包达到个性化的登录认证</span></td></tr><tr><td style='text-align:center;' ><span>请求头</span></td><td style='text-align:center;' ><span>请求头由关键字/值对组成，每行一对</span></td></tr><tr><td style='text-align:center;' ><span>请求体</span></td><td style='text-align:center;' ><span>请求体支持的类型有：Application/json类型；内容自定义json数据</span></td></tr><tr><td style='text-align:center;' ><span>结果变量名</span></td><td style='text-align:center;' ><span>结果变量由变量名与表达式组成，变量名可以为其他组件所引用，</span><br><span>表达式是对接口返回的结果集做自定义解析</span></td></tr><tr><td style='text-align:center;' ><span>变量关系</span></td><td style='text-align:center;' ><span>通过设置变量的层级关系，将有层级的json数据平展为数据库表，仅支持2种层级关系</span></td></tr><tr><td style='text-align:center;' ><span>计算结果</span></td><td style='text-align:center;' ><span>计算结果是展示结果变量解析是否正确</span></td></tr></tbody></table></figure><p><strong><span>WebService</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据集成 &gt; 接口采集 &gt; WebService</span></strong><span>进入列表页面。</span></p><p><span>3、点击</span><strong><span>新建任务</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\1644809374953_image.png" referrerpolicy="no-referrer" alt="1644809374953_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>类型</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>任务名称</span></td><td style='text-align:center;' ><span>任务名称，接口采集内唯一，2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>请求方式</span></td><td style='text-align:center;' ><span>后端服务接口通信方式，单选</span></td></tr><tr><td style='text-align:center;' ><span>URL</span></td><td style='text-align:center;' ><span>后端服务接口地址</span></td></tr><tr><td style='text-align:center;' ><span>认证</span></td><td style='text-align:center;' ><span>认证分为三种方式</span><br><span>API密钥：填写key与Value</span><br><span>Token令牌：填写访问Token</span><br><span>自定义认证：通过上传认证jar包达到个性化的登录认证</span></td></tr><tr><td style='text-align:center;' ><span>请求参数</span></td><td style='text-align:center;' ><span>请求体支持填写单值</span></td></tr><tr><td style='text-align:center;' ><span>结果变量</span></td><td style='text-align:center;' ><span>结果变量由变量名与表达式组成，变量名可以为其他组件所引用，</span><br><span>表达式是对接口返回的结果集做自定义解析</span></td></tr><tr><td style='text-align:center;' ><span>变量关系</span></td><td style='text-align:center;' ><span>通过设置变量的层级关系，将有层级的json数据平展为数据库表，仅支持2种层级关系</span></td></tr><tr><td style='text-align:center;' ><span>计算结果</span></td><td style='text-align:center;' ><span>计算结果是展示结果变量解析是否正确</span></td></tr></tbody></table></figure><p>&nbsp;</p><h3 id='文件采集'><span>文件采集</span></h3><p><span>文件采集支持将xlsx、xls、csv内的数据进行采集。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据集成 &gt; 文件采集</span></strong><span>进入列表页面。</span></p><p><span>3、点击</span><strong><span>上传文件</span></strong><span>进入弹窗，支持拖拽上传与点击上传，文件格式支持XLSX、XLS、CSV类型。</span></p><p><img src=".\assets\9-2文件采集 (1).png" referrerpolicy="no-referrer" alt="9-2文件采集 (1)"></p><p><span>4、上传完成点击</span><strong><span>下一步</span></strong><span>查看上传数据是否符合预期。</span></p><p><span>5、配置映射数据表，将文件内的字段与数据表字段一一映射，若不存在数据表可进行</span><strong><span>一键建表</span></strong><span>。</span></p><p><img src=".\assets\9-4文件采集 (1).png" referrerpolicy="no-referrer" alt="9-4文件采集 (1)"></p><p>&nbsp;</p><h3 id='对象存储'><span>对象存储</span></h3><p><span>对象存储是面向非结构化数据的一项集采集、存储与管理的服务，提供海量、安全、低成本、高可靠的数据存储能力。</span></p><h4 id='存储管理'><span>存储管理</span></h4><p><span>存储管理用于管理对象的存储，在上传任何文件到存储服务之前，需先创建存储空间。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、新建存储空间</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据集成 &gt; 对象存储 &gt; 存储管理</span></strong><span>进入列表页面。</span></p><p><span>3、单击左上角</span><strong><span>新建存储空间</span></strong><span>配置各项参数</span></p><p><img src=".\assets\1644809375121_image.png" referrerpolicy="no-referrer" alt="1644809375121_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:left;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>空间名称</span></td><td style='text-align:left;' ><span>空间名称，名称需唯一，1-128个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>空间描述</span></td><td style='text-align:left;' ><span>空间的描述性信息，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>加密方式</span></td><td style='text-align:left;' ><span>加密方式默认不加密，可选择</span><strong><span>系统托管加密</span></strong><span>，系统会对每个对象使用不同的密钥进行加密保护</span></td></tr><tr><td style='text-align:center;' ><span>读写权限</span></td><td style='text-align:left;' ><strong><span>私有</span></strong><span>：只有该存储空间的拥有者可以对该存储空间内的文件进行读写操作，其他人无法访问</span><br><strong><span>公共读</span></strong><span>：只有该存储空间的拥有者可以对该存储空间内的文件进行读写操作，其他人可以读文件</span><br><strong><span>公共读写</span></strong><span>：任何人都可以对该存储空间内的文件进行读写操作</span></td></tr></tbody></table></figure><p><strong><span>二、查看</span></strong></p><p><span>1、选择</span><strong><span>存储空间 &gt; 查看</span></strong><span>进入弹窗页面。</span></p><p><span>系统显示该存储空间的基础数据与基础设置</span></p><p><img src=".\assets\1644809375159_image.png" referrerpolicy="no-referrer" alt="1644809375159_image"></p><p><strong><span>二、编辑</span></strong></p><p><span>1、选择</span><strong><span>存储空间 &gt; 编辑</span></strong><span>进入弹窗页面，存储空间4项配置都支持编辑。</span></p><p><img src=".\assets\1644809375205_image.png" referrerpolicy="no-referrer" alt="1644809375205_image"></p><p><strong><span>三、删除</span></strong></p><p><span>1、选择</span><strong><span>存储空间 &gt; 删除</span></strong><span>进入弹窗页面，系统会提示是否确认删除。</span></p><p><img src=".\assets\1644809375239_image.png" referrerpolicy="no-referrer" alt="1644809375239_image"></p><p><strong><span>三、文件管理</span></strong></p><p><span>1、选择</span><strong><span>存储空间 &gt; 文件管理</span></strong><span>进入列表页面。</span></p><p><span>2、点击右上角</span><strong><span>上传文件</span></strong><span>进行文件的上传。</span></p><p><span>3、每个对象均支持查看明细、下载、设置读写权限、删除动作。</span></p><p><img src=".\assets\1644809375271_image.png" referrerpolicy="no-referrer" alt="1644809375271_image"></p><p><span>注：此处的</span><strong><span>设置读写权限</span></strong><span>仅针对单个对象，不影响整个存储空间的权限设置。</span></p><p><span>4、查看页面支持以连接的方式向外输出，且支持连接的有效期设置。</span></p><p><img src=".\assets\1644809375349_image.png" referrerpolicy="no-referrer" alt="1644809375349_image"></p><h4 id='服务工具'><span>服务工具</span></h4><p><span>服务工具支持</span><strong><span>客户端工具</span></strong><span>与</span><strong><span>Java SDK</span></strong><span>，用于外部管理或使用对象存储服务。</span></p><p><strong><span>客户端工具</span></strong></p><p><span>支持Windows客户端，通过下载程序安装在本地，配置本地路径与对象存储服务的存储空间完成数据的实时传输。</span></p><p><strong><span>Java SDK</span></strong></p><p><span>下载java SDK资源包，内部包含使用方法与案例，Java SDK是将已封装好的方法提供给第三方系统使用。</span></p><p><img src=".\assets\1644809375399_image.png" referrerpolicy="no-referrer" alt="1644809375399_image"></p><h3 id='自定义表单'><span>自定义表单</span></h3><p><span>自定义表单用于创建一个个性化填报页面，发布到终端让用户填报数据。创建完成的表单只有发布之后才能被外部用户访问，表单的发布支持</span><strong><span>无认证方式</span></strong><span>与</span><strong><span>有认证方式</span></strong><span>两种。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据集成 &gt; 自定义表单</span></strong><span>进入列表页面。</span></p><p><span>3、点击</span><strong><span>新建表单</span></strong><span>进入页面，由左侧的组件拖入画布中配置表单。</span></p><p><img src=".\assets\1644809375464_image.png" referrerpolicy="no-referrer" alt="1644809375464_image"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>单行文本</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>默认值：不填写时采用的默认数据</span><br><span>校验：校验方式支持必填、最少字数、最多字数</span></td></tr><tr><td style='text-align:center;' ><span>多行文本</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>默认值：不填写时采用的默认数据</span><br><span>校验：校验方式支持必填、最少字数、最多字数</span></td></tr><tr><td style='text-align:center;' ><span>数字输入框</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>默认值：不填写时采用的默认数据</span><br><span>校验：校验方式支持必填、最小值、最大值、最大的小数位数</span></td></tr><tr><td style='text-align:center;' ><span>下拉框选项</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>选项：通过加号选项，自定义设置选项内容</span><br><span>校验：校验方式有必填</span></td></tr><tr><td style='text-align:center;' ><span>单项选择框</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>选项：通过加号选项，自定义设置选项内容</span><br><span>校验：校验方式有必填</span></td></tr><tr><td style='text-align:center;' ><span>复选框</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>选项：通过加号选项，自定义设置选项内容</span><br><span>校验：校验方式有必填</span></td></tr><tr><td style='text-align:center;' ><span>日期</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>日期格式：格式支持</span><strong><span>YYYY-MM-DD</span></strong><span>、</span><strong><span>YYYY-MM</span></strong><br><span>默认值：不填写时采用的默认数据</span><br><span>校验：校验方式支持必填、最大开始日期、最大结束日期</span></td></tr><tr><td style='text-align:center;' ><span>时间</span></td><td style='text-align:center;' ><span>key：字段名称（必填项）</span><br><span>标题：字段的中文描述</span><br><span>默认值：默认值格式为</span><strong><span>hh:mm:ss</span></strong><br><span>校验：校验方式有必填</span></td></tr></tbody></table></figure><p><span>4、</span><strong><span>1</span></strong><span>是表单名称，支持自定义修改；</span><strong><span>2</span></strong><span>是表名称，支持自定义修改，前缀为</span><strong><span>ods_</span></strong><span>。</span></p><p><img src=".\assets\1644809375543_image.png" referrerpolicy="no-referrer" alt="1644809375543_image"></p><h2 id='数据开发'><span>数据开发</span></h2><h3 id='离线计算'><span>离线计算</span></h3><h4 id='作业开发'><span>作业开发</span></h4><p><span>作业开发面向临时查询的需求，仅执行一段测试脚本SQL，同时此脚本可以被</span><strong><span>工作流程</span></strong><span>引用。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 离线计算 &gt; 作业开发</span></strong><span>进入开发页面。</span></p><p><span>3、在工作目录中右键单击，选择</span><strong><span>新建作业</span></strong><span>进入开发工作台。</span></p><p><img src="C:\Users\kunlun.kyx\Desktop\产品相关文档\产品文档V1.1\assets\image-20220317152151154.png" referrerpolicy="no-referrer" alt="image-20220317152151154"></p><h4 id='工作流程'><span>工作流程</span></h4><p><span>离线计算支持向导模式与脚本模式，向导模式以配置的方式完成数据清洗加工，屏蔽底层复杂的计算架构，以更加友好、便捷的方式完成数据开发；脚本模式以编写SQL的方式完成开发。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、创建工作流程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 离线计算 &gt; 工作流程</span></strong><span>进入列表页面。</span></p><p><span>3、在工作目录中右键单击，选择</span><strong><span>新建工作流程 &gt; 脚本模式</span></strong><span>进入开发工作台，从开发组件区域拖入相应的组件，并进行开发。</span></p><p><img src=".\assets\2-2-工作流程-16480076024803.png" referrerpolicy="no-referrer" alt="2-2-工作流程"></p><p><strong><span>二、开始节点</span></strong></p><p><span>画布创建初始，自带一个开始节点作为该工作流程的起始节点，主要用于整个工作流程的</span><strong><span>调度配置</span></strong><span>：包括生效日期、调度周期，设置任务依赖。</span></p><p><span>右侧导航栏可查看</span><strong><span>节点详情</span></strong><span>、</span><strong><span>调度依赖</span></strong><span>和任务的</span><strong><span>操作记录</span></strong><span>。</span></p><ul><li><strong><span>节点详情</span></strong><span>：查看该节点基本信息</span></li></ul><p><img src=".\assets\3-3-工作流程-脚本模式-16480076395904.png" referrerpolicy="no-referrer" alt="3-3-工作流程-脚本模式"></p><ul><li><strong><span>调度配置</span></strong><span>：设置该工作流的调度周期，需要配置的参数如下：</span></li></ul><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>生效日期</span></td><td><span>选择任务生效日期</span></td></tr><tr><td><span>调度周期</span></td><td><span>包括分钟、小时、天、周、月</span></td></tr><tr><td><span>任务依赖</span></td><td><span>选择任务添加依赖</span></td></tr></tbody></table></figure><p><img src=".\assets\3-7-工作流程-脚本模式.png" referrerpolicy="no-referrer" alt="3-7-工作流程-脚本模式"></p><ul><li><strong><span>操作记录</span></strong><span>：记录节点更新情况</span></li></ul><p><img src=".\assets\3-8-工作流程-脚本模式.png" referrerpolicy="no-referrer" alt="3-8-工作流程-脚本模式"></p><p><strong><span>三、开发组件配置</span></strong></p><p><span>开发组件支持数据集成、数据开发、数据质量三类。</span></p><p><strong><span>使用教程：</span></strong></p><p><span>1、双击工作流程目录下需要编辑的工作流</span></p><p><span>2、进入画布，拖动左侧组件栏，拖动组件到画布中，编辑组件的名称和描述信息，点击“保存”。</span></p><p><span>3、双击开发组件节点，进入该组件配置页面。</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>离线同步</span></td><td style='text-align:center;' ><span>面向业务数据库层面的批量数据采集，详细配置参考</span><a href=''><span>离线同步</span></a></td></tr><tr><td style='text-align:center;' ><span>接口采集</span></td><td style='text-align:center;' ><span>面向业务系统的接口数据采集，详细配置参考</span><a href=''><span>接口采集</span></a></td></tr><tr><td style='text-align:center;' ><span>SQL组件</span></td><td style='text-align:center;' ><span>数据开发SQL组件</span></td></tr><tr><td style='text-align:center;' ><span>数据质量</span></td><td style='text-align:center;' ><span>数据质量组件，详细配置参考</span><a href=''><span>数据质量</span></a></td></tr></tbody></table></figure><p><strong><span>四、连线属性</span></strong></p><p><span>各个组件根据业务逻辑关系使用连线形成上下游关系，虎符提供3种连线关系，并以颜色区别：</span></p><p><span>（1）上一节点运行成功，则执行下一节点；</span></p><p><span>（2）上一节点运行失败，则执行下一节点；</span></p><p><span>（3）总是执行下一节点。</span></p><p><span>注：开始节点的连线“只有总是执行下一节点”这一条属性</span></p><h4 id='资源管理-1'><span>资源管理</span></h4><p><span>用户可以通过资源管理功能，将写好的</span><strong><span>自定义函数</span></strong><span>以jar文件形式上传至虎符平台，在离线任务运行时调用</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、上传资源</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 实时开发&gt; 资源管理</span></strong><span>进入资源列表页面。</span></p><p><span>3、在工作目录中右键单击</span><strong><span>上传</span></strong><span>按钮，进入弹窗页面配置各项参数。</span></p><p><img src=".\assets\1644809375906_image.png" referrerpolicy="no-referrer" alt="1644809375906_image"></p><p><strong><span>二、引用资源</span></strong></p><p><strong><span>函数中引用资源</span></strong></p><p><span>如果现有的系统内置函数无法满足您的需求，离线计算支持创建自定义函数。将实现逻辑的资源Jar包上传至项目空间下，便可在创建自定义函数的时候进行引用资源。详细操作请参见</span><strong><span>函数管理</span></strong><span>。  </span></p><p><strong><span>三、删除资源</span></strong></p><p><span>如果需要删除一个资源，在</span><strong><span>资源目录</span></strong><span>中右键单击该资源，选择</span><strong><span>删除</span></strong><span>即可。  </span></p><p><span>注： 删除资源后，引用该资源的函数或代码在运行时会报错，故请慎重操作。</span></p><h4 id='函数管理-1'><span>函数管理</span></h4><p><span>用户可以通过函数管理功能，上传自定义Jar文件作为资源，发布自定义函数，并进行注册使用。同时以文件树形式对函数资源统一进行管理。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>前提：</span></strong><span>需要在</span><strong><span>资源目录</span></strong><span>中上传好所需资源jar包，具体操作看</span><strong><span>资源目录&gt;上传资源</span></strong><span>文档</span></p><p><strong><span>一、自定义函数</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt;离线时开发 &gt;函数管理</span></strong><span>进入资源列表页面。</span></p><p><span>3、在工作目录中点击</span><strong><span>新建函数</span></strong><span>按钮，进入弹窗页面配置各项参数。</span></p><p><span>4、填写完成后，提交后函数创建成功，之后即可在SQL代码中使用此函数。</span></p><p><img src=".\assets\image-20220214173618627.png" referrerpolicy="no-referrer" alt="image-20220214173618627"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>函数名称</span></td><td><span>在SQL脚本中使用的函数名称，名称需唯一，2-32个字符，支持英文字母、数字和下划线</span></td></tr><tr><td><span>类名</span></td><td><span>资源中需要运行的MainClass路径</span></td></tr><tr><td><span>资源</span></td><td><span>在资源管理中定义的资源名称</span></td></tr><tr><td><span>用途</span></td><td><span>函数的用途描述，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>命令格式</span></td><td><span>函数名称(参数类型1，参数类型2，...)</span></td></tr><tr><td><span>父级目录</span></td><td><span>该函数所在的的父级目录</span></td></tr><tr><td><span>参数说明</span></td><td><span>该函数使用的参数说明，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><p><strong><span>二、查看函数及引用</span></strong></p><p><span>单击函数名，可以查看函数的类型、命令格式以及参数说明。可在</span><strong><span>离线开发任务</span></strong><span>中，通过代码编写引用函数。  </span></p><p><strong><span>三、删除函数</span></strong></p><p><span>在函数目录页面找到需要删除的函数，右键单击，在菜单栏选择</span><strong><span>删除</span></strong><span>，即可删除该函数。</span></p><h4 id='任务运维-1'><span>任务运维</span></h4><p><span>在任务运维，可以查看离线任务的</span><strong><span>运行状态以及日志</span></strong><span>，支持</span><strong><span>重跑任务</span></strong><span>、</span><strong><span>终止运行</span></strong><span>等操作，也可以重要的任务设置</span><strong><span>关注</span></strong><span>等。</span></p><p><img src=".\assets\7-7-任务运维.png" referrerpolicy="no-referrer" alt="7-7-任务运维"></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>运维中心 &gt; 实时开发 </span></strong><span>进入运维列表页面，查看任务运行状态和基础信息。</span></p><p><span>3、可对您需要的任务，进行</span><strong><span>查看任务详情，查看日志、历史任务、关注、重跑/终止运行</span></strong><span>等操作</span></p><ul><li><strong><span>任务详情。</span></strong><span>查看该离线任务基本信息及运行情况。</span></li><li><strong><span>查看日志</span></strong><span>。在操作栏点击“查看日志”，该离线数据同步任务的详情，点击同步来源数据表的名称，则自动定位至该数据表同步的日志信息，方便问题排查。</span></li><li><strong><span>关注。</span></strong><span>在操作栏点击“关注”，可方便后期搜索栏检索关注任务</span></li><li><strong><span>历史任务。</span></strong><span>查看该离线任务下的所有以往的历史调度信息，如任务详情和查看日志。</span></li><li><strong><span>重跑/终止运行</span></strong><span>。可对离线任务进行重跑或者终止等操作。</span></li></ul><p><span>4、</span><strong><span>设置监控。</span></strong><span>在列表中点击</span><strong><span>更多 &gt; 设置监控</span></strong><span>，进入弹窗页面配置各项参数。</span></p><p><img src=".\assets\7-5-任务运维.png" referrerpolicy="no-referrer" alt="7-5-任务运维"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>监控主题</span></td><td><span>默认值，离线开发工作流程</span></td></tr><tr><td><span>实时开发任务</span></td><td><span>默认值，需要监控的离线开发任务名</span></td></tr><tr><td><span>报警原因</span></td><td><span>触发报警的条件</span></td></tr><tr><td><span>通知人</span></td><td><span>虎符注册的用户角色</span></td></tr><tr><td><span>通知方式</span></td><td><span>支持以邮件方式通知用户</span></td></tr></tbody></table></figure><h3 id='实时计算'><span>实时计算</span></h3><h4 id='实时开发'><span>实时开发</span></h4><p><span>实时开发支持向导模式与脚本模式（Flink、FlinkSQL）两种任务开发方式。在脚本模式中Flink类型的任务需要编写相应代码，打包上传至虎符后来进行调度运行，该类型可以以更加灵活的方式来开发各种更加复杂类型的指标，缺点则是上手难度高。FlinkSQL任务类型则以SQL脚本的方式来快速完成开发，使开发方式更加简单便捷。而在向导模式中则对脚本进一步封装，用户只需利用拖拉拽形式就可以完成指标的开发。</span></p><p><strong><span>Flink类型</span></strong></p><p><span>在使用Flink类型的开发模式时，用户需要确保已近上传了相关的jar文件（需包含Flink代码与相关依赖资源）至虎符，具体的上传方法参见</span><a href=''><span>资源管理</span></a></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、创建工作目录及实时任务</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 实时开发  </span></strong><span>进入实时开发界面。</span></p><p><span>3、在实时开发目录中点击</span><strong><span>新建工作目录</span></strong><span>，填写需要建立的目录名称</span></p><p><span>4、在工作目录中右键单击，选择</span><strong><span>新建任务 &gt;脚本模式 &gt;Flink</span></strong><span>进入弹窗页面配置各项参数。</span></p><p><img src=".\assets\3-1-实时开-脚本模式-Flink.png" referrerpolicy="no-referrer" alt="3-1-实时开-脚本模式-Flink"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>任务名称</span></td><td><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>任务类型</span></td><td><span>实时开发任务类型</span></td></tr><tr><td><span>资源</span></td><td><span>资源管理模块中上传的资源名称</span></td></tr><tr><td><span>mainClass</span></td><td><span>资源中需要运行的MainClass路径</span></td></tr><tr><td><span>父级目录</span></td><td><span>父级目录名称</span></td></tr><tr><td><span>描述</span></td><td><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><p><strong><span>二、查看任务详情</span></strong></p><p><span>1、在工作目录中双击创建好的实时开发任务，进入</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在开发任务页面可以对相关配置信息进行二次修改并</span><strong><span>保存</span></strong><span>。</span></p><p><span>3、点击</span><strong><span>锁定</span></strong><span>状态则无法进行修改操作，需进行解锁操作</span></p><p><span>4、在右侧列表点击查看</span><strong><span>任务详情</span></strong><span>，可以看到任务名称及创建修改时间</span></p><p><strong><span>三、设置环境参数。</span></strong></p><p><span>环境参数可以确定该Flink的运行的资源占用及分配情况，合适的参数可以时Flink任务运行更加高效。虎符中默认给定了一些常用参数的配置规则，用户也可以自定义配置其他参数</span></p><p><span>1、进入Flink实时</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在右侧列表点击</span><strong><span>环境参数</span></strong></p><p><span>3、以</span><strong><span>文本形式</span></strong><span>配置各项参数值（以#开头为注释行标识），配置完毕后将自动保存</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>jobmanager.execution.failover-strategy</span></td><td><span>job失败恢复策略</span></td></tr><tr><td><span>jobmanager.memory.process.size</span></td><td><span>JobManager运行时总内存大小</span></td></tr><tr><td><span>taskmanager.memory.process.size</span></td><td><span>TaskManager运行时总内存大小</span></td></tr><tr><td><span>parallelism.default</span></td><td><span>默认并行度</span></td></tr><tr><td><span>taskmanager.numberOfTaskSlots</span></td><td><span>每个TaskManager的并行度</span></td></tr></tbody></table></figure><p><strong><span>四、设置调度配置</span></strong></p><p><span>设置调度配置可以指定运行该Flink任务的时间周期</span></p><p><span>1、进入Flink实时</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在右侧列表点</span><strong><span>调度配置</span></strong></p><p><span>3、填写</span><strong><span>生效区间。</span></strong><span>生效区间支持在日期范围内每天调度与周一至周五调度</span></p><p><span>4、填写</span><strong><span>日期范围</span></strong><span>。选择日期范围输入框，可以需要配置调度的时间范围。点击左下角“今天”，可以设置调度范围为今天开始后的所有天数。</span></p><p><span>5、填写</span><strong><span>时间范围</span></strong><span>。选择运行该Flink任务的时间范围</span></p><p><strong><span>五、发布运行</span></strong></p><p><strong><span>前提：</span></strong><span>发布运行前请确认您已经上传了正确的jar文件至虎符的资源管理模块并确认上述配置信息正确无误</span></p><p><span>1、进入Flink实时</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在右上角点击</span><strong><span>发布</span></strong><span>，提示发布成功</span></p><p><span>3、在右上角点击</span><strong><span>运维</span></strong><span>进入运维中心，查看刚才发布的任务状态及运行日志，详见</span><a href=''><span>任务运维</span></a></p><p><strong><span>FlinkSQL类型</span></strong></p><p><span>在使用FlinkSql类型的开发模式时，如果在脚本使用了自定义函数，需要您确保已近上传了相关的jar文件至虎符并注册了该函数，具体的方法参见</span><a href=''><span>资源管理</span></a><span>及</span><a href=''><span>函数管理</span></a></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、创建工作目录及实时任务</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 实时开发</span></strong><span>进入列表页面。</span></p><p><span>3、在工作目录中右键单击，选择</span><strong><span>新建任务 &gt;脚本模式 &gt;FlinkSQL</span></strong><span>进入弹窗页面配置各项参数。</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>任务名称</span></td><td><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>任务类型</span></td><td><span>实时开发任务类型</span></td></tr><tr><td><span>父级目录</span></td><td><span>父级目录名称</span></td></tr><tr><td><span>描述</span></td><td><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><p><strong><span>二、配置源表，结果表，维度表</span></strong></p><p><img src=".\assets\2-4-实时开-脚本模式-FlinkSQL.png" referrerpolicy="no-referrer" alt="2-4-实时开-脚本模式-FlinkSQL"></p><p><span>1、在工作目录中双击创建好的实时开发任务，进入</span><strong><span>开发任务页面</span></strong></p><p><span>2、在开发页面的右侧列表中选择</span><strong><span>源表</span></strong><span>，进行相关配置，具体信息如下表</span></p><p><strong><span>源表</span></strong><span>：将外部系统的表映射为FlinkSQL需要的源表结构。</span></p><p><span>注：在配置源表时请确保用户在数据资产 &gt; 数据源管理已经配置好相关数据源。目前源表类型支持Kafka类型，可以在配置表单中数据预览中查看是否正确连接并获取到数据</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>类型</span></td><td><span>源表类型目前只支持Kafka</span></td></tr><tr><td><span>数据源</span></td><td><span>在数据资产 &gt; 数据源管理中配置的数据源</span></td></tr><tr><td><span>Topic</span></td><td><span>需要连接的Kafka主题</span></td></tr><tr><td><span>映射表</span></td><td><span>由Kafka中的topic映射而成的，可以在SQL中使用它。</span></td></tr><tr><td><span>字段</span></td><td><span>映射表的字段信息。只有当topic中的数据为json格式时，才可以自动映射成相应字段</span></td></tr><tr><td><span>Offset</span></td><td><span>latest：从Kafka Topic内最新的数据开始消费</span><br><span>earliest：从Kafka Topic内最老的数据开始消费</span></td></tr><tr><td><span>时间特征</span></td><td><span>ProcTime：按照Flink的处理时间处理</span><br><span>EventTime：按照流式数据本身包含的业务时间戳处理</span></td></tr></tbody></table></figure><p><span>3、在开发页面的右侧列表中选择</span><strong><span>结果表</span></strong><span>，进行相关配置，具体信息如下表</span></p><p><strong><span>结果表：</span></strong><span>将计算结果存放入外部系统的表</span></p><p><span>注：在配置源表时请确保用户在数据资产 &gt; 数据源管理已经配置好相关数据源。目前结果表类型支持Kafka，Mysql，Hive，Hbase，可以在配置表单中的数据预览中查看是否正确连接并获取到数据</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>类型</span></td><td><span>结果表类型目前支持Kafka，Mysql，Hive，Hbase</span></td></tr><tr><td><span>数据源</span></td><td><span>在数据资产 &gt; 数据源管理中配置的数据源</span></td></tr><tr><td><span>表</span></td><td><span>外部系统的表名</span></td></tr><tr><td><span>映射表</span></td><td><span>Flink中的存放计算结果的表，可以在SQL中使用它。</span></td></tr><tr><td><span>字段</span></td><td><span>映射表的字段信息。</span></td></tr><tr><td><span>更新模式</span></td><td><span>追加：以仅追加的模式写入外部系统</span><br><span>更新：写入外部系统时可以更新结果，需要有主键</span></td></tr></tbody></table></figure><p><span>4、在开发页面的右侧列表中选择</span><strong><span>维度表</span></strong><span>，进行相关配置，具体信息如下表</span></p><p><strong><span>维度表</span></strong><span>：FlinkSQL中需要用到的维度表</span></p><p><span>注：在配置源表时请确保用户在数据资产 &gt; 数据源管理已经配置好相关数据源。目前结果表类型支持Kafka，Mysql，Hive，Hbase，可以在配置表单中的数据预览中查看是否正确连接并获取到数据</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>类型</span></td><td><span>结果表类型目前支持Kafka，Mysql，Hive，Hbase</span></td></tr><tr><td><span>数据源</span></td><td><span>在数据资产 &gt; 数据源管理中配置的数据源</span></td></tr><tr><td><span>表</span></td><td><span>外部系统的表名</span></td></tr><tr><td><span>映射表</span></td><td><span>Flink中的存放计算结果的表，可以在SQL中使用它。</span></td></tr><tr><td><span>字段</span></td><td><span>映射表的字段信息。</span></td></tr><tr><td><span>主键</span></td><td><span>映射表的主键信息</span></td></tr><tr><td><span>缓存策略</span></td><td><span>目前只支持LRU（最近最少使用策略）</span></td></tr><tr><td><span>缓存大小</span></td><td><span>缓存大小，以行为单位</span></td></tr><tr><td><span>缓存超过时间</span></td><td><span>缓存超过时间，以毫秒为单位</span></td></tr></tbody></table></figure><p><strong><span>三、编写SQL脚本</span></strong></p><p><img src=".\assets\2-12-实时开-脚本模式-FlinkSQL.png" referrerpolicy="no-referrer" alt="2-12-实时开-脚本模式-FlinkSQL"></p><p><span>1、在工作目录中双击创建好的实时开发任务，进入</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在右侧列表中的</span><strong><span>任务详情</span></strong><span>，可以看到该任务创建人及最近修改时间等信息</span></p><p><span>3、在空白页面中</span><strong><span>编辑SQL脚本</span></strong></p><p><span>4、点击上方工具栏的</span><strong><span>代码检查</span></strong><span>，如果出现脚本中出现语法等错误将会有</span><strong><span>提示信息</span></strong></p><p><span>5、点击</span><strong><span>保存</span></strong><span>（注：保存后可以在底部Tab页中可以查看历史版本的SQL脚本信息）</span></p><p><span>6、点击</span><strong><span>锁定</span></strong><span>状态则无法进行修改操作，需进行解锁操作</span></p><p><strong><span>三、设置环境参数。</span></strong></p><p><img src=".\assets\2-10-实时开-脚本模式-FlinkSQL.png" referrerpolicy="no-referrer" alt="2-10-实时开-脚本模式-FlinkSQL"></p><p><span>环境参数可以确定该Flink的运行的资源占用及分配情况，合适的参数可以时Flink任务运行更加高效。虎符中默认给定了一些常用参数的配置规则，用户也可以</span><strong><span>自定义配置</span></strong><span>其他参数</span></p><p><span>1、进入Flink实时</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在右侧列表点击</span><strong><span>环境参数</span></strong></p><p><span>3、以</span><strong><span>文本形式</span></strong><span>配置各项参数值（以#开头为注释行标识），配置完毕后将自动保存</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>jobmanager.execution.failover-strategy</span></td><td><span>job失败恢复策略</span></td></tr><tr><td><span>jobmanager.memory.process.size</span></td><td><span>JobManager运行时总内存大小</span></td></tr><tr><td><span>taskmanager.memory.process.size</span></td><td><span>TaskManager运行时总内存大小</span></td></tr><tr><td><span>parallelism.default</span></td><td><span>默认并行度</span></td></tr><tr><td><span>taskmanager.numberOfTaskSlots</span></td><td><span>每个TaskManager的并行度</span></td></tr></tbody></table></figure><p><strong><span>四、设置调度配置</span></strong></p><p><span>设置调度配置可以指定运行该Flink任务的</span><strong><span>时间周期</span></strong></p><p><img src=".\assets\2-11-实时开-脚本模式-FlinkSQL.png" referrerpolicy="no-referrer" alt="2-11-实时开-脚本模式-FlinkSQL"></p><p><span>1、进入Flink</span><strong><span>实时开发</span></strong><span>任务页面</span></p><p><span>2、在右侧列表点</span><strong><span>调度配置</span></strong></p><p><span>3、填写</span><strong><span>生效区间</span></strong><span>。生效区间支持在日期范围内每天调度与周一至周五调度</span></p><p><span>4、填写日期范围。选择日期范围输入框，可以需要配置调度的时间范围。点击左下角“今天”，可以设置调度范围为今天开始后的所有天数。</span></p><p><span>5、填写</span><strong><span>时间范围</span></strong><span>。选择运行该Flink任务的时间范围</span></p><p><strong><span>五、调试运行</span></strong></p><p><span>代码调试用于校验业务逻辑或语法的正确性，由于时实时开发，在调试运行前需要提前上传好源表数据，目前虎符支持以csv文件上传与采集线上数据的方式进行上传。</span></p><p><span>1、进入Flink实时</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在顶部菜单栏中选择</span><strong><span>调试</span></strong></p><p><span>3、在左侧列表中选择需要上传数据的</span><strong><span>数据表</span></strong></p><p><span>4、</span><strong><span>上传数据</span></strong></p><ul><li><span>csv文件上传：选择下载模板，在下载好的csv文件中填报数据并上传至虎符（文件支持扩展名 .csv，条数应小于1000条且不超过1MB; 文件仅支持UTF-8格式;）</span></li><li><span>采集线上数据：采集kafka中的数据（该Kafka信息需要在源表中配置完成）</span></li></ul><p><span>5、点击</span><strong><span>调试</span></strong><span>后可以在</span><strong><span>运行日志</span></strong><span>中查看调试的结果</span></p><p><span>注：</span></p><p><span>1、上传自定义数据、模拟作业运行、检查输出结果，最终验证业务逻辑的正确性，仅需上传源表数据，维表直接读取配置，无需上传</span>
<span>2、线上数据采集时长为30秒，若超过1分钟数据仍未采集至指定条数，则采集停止</span></p><p><strong><span>六、发布运行</span></strong></p><p><span>1、进入Flink实时</span><strong><span>开发任务</span></strong><span>页面</span></p><p><span>2、在右上角点击</span><strong><span>发布</span></strong><span>，提示发布成功</span></p><p><span>3、在右上角点击</span><strong><span>运维</span></strong><span>进入运维中心，查看刚才发布的任务状态及运行日志，详见任务运维</span></p><p><strong><span>注：</span></strong><span>发布前请确认</span></p><ul><li><span>确保任务名称唯一且合法</span></li><li><span>已经设置了正确的配置信息</span></li><li><span>SQL脚本进行了代码检查这一环节</span></li><li><span>代码调试后日志无明显错误信息</span></li></ul><h4 id='资源管理-2'><span>资源管理</span></h4><p><span>用户可以通过资源管理功能，将写好的</span><strong><span>自定义函数</span></strong><span>或是</span><strong><span>Flink代码</span></strong><span>以jar文件形式上传至虎符平台，在实时任务运行时调用</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、上传资源</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 实时开发&gt; 资源管理</span></strong><span>进入资源列表页面。</span></p><p><span>3、在工作目录中右键单击</span><strong><span>上传</span></strong><span>按钮，进入弹窗页面配置各项参数。</span></p><p><img src=".\assets\1644809375906_image.png" referrerpolicy="no-referrer" alt="1644809375906_image"></p><p><strong><span>二、引用资源</span></strong></p><ul><li><strong><span>函数中引用资源</span></strong></li></ul><p><span>如果现有的系统内置函数无法满足您的需求，实时计算支持创建自定义函数。将实现逻辑的资源Jar包上传至项目空间下，便可在创建自定义函数的时候进行引用资源。详细操作请参见</span><strong><span>函数管理</span></strong><span>。  </span></p><ul><li><strong><span>在Flink任务中引用资源</span></strong></li></ul><p><span>实时计算支持通过引用资源创建Flink任务，用户手动配置资源、mainclass、父级目录，可快速完成实时计算任务的创建。详细操作请参考任务管理中的</span><strong><span>新建Flink任务</span></strong><span>。</span></p><p><strong><span>三、删除资源</span></strong></p><p><span>如果需要删除一个资源，在</span><strong><span>资源目录</span></strong><span>中右键单击该资源，选择</span><strong><span>删除</span></strong><span>即可。  </span></p><p><span>注： 删除资源后，引用该资源的函数或代码在运行时会报错，故请慎重操作。  </span></p><h4 id='函数管理-2'><span>函数管理</span></h4><p><span>用户在上传了自定义函数的代码资源后，需要对函数进行注册才能进行使用。函数管理模块提供了可视化界面来帮助用户对函数统一的管理与注册。</span></p><p><strong><span>前提：</span></strong><span>需要在</span><strong><span>资源目录</span></strong><span>中上传好所需资源jar包，具体操作看</span><strong><span>资源目录&gt;上传资源</span></strong><span>文档</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一、自定义函数</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据开发 &gt; 实时开发 &gt;函数管理</span></strong><span>进入资源列表页面。</span></p><p><span>3、在工作目录中点击</span><strong><span>新建函数</span></strong><span>按钮，进入弹窗页面配置各项参数。</span></p><p><span>4、填写完成后，提交后函数创建成功，之后即可在SQL代码中使用此函数。</span></p><p><img src=".\assets\image-20220214173618627.png" referrerpolicy="no-referrer" alt="image-20220214173618627"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>函数名称</span></td><td><span>在SQL脚本中使用的函数名称，名称需唯一，2-32个字符，支持英文字母、数字和下划线</span></td></tr><tr><td><span>类名</span></td><td><span>资源中需要运行的MainClass路径</span></td></tr><tr><td><span>资源</span></td><td><span>在资源管理中定义的资源名称</span></td></tr><tr><td><span>用途</span></td><td><span>函数的用途描述，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td><span>命令格式</span></td><td><span>函数名称(参数类型1，参数类型2，...)</span></td></tr><tr><td><span>父级目录</span></td><td><span>该函数所在的的父级目录</span></td></tr><tr><td><span>参数说明</span></td><td><span>该函数使用的参数说明，128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><p><strong><span>二、查看函数及引用</span></strong></p><p><span>单击函数名，可以查看函数的类型、命令格式以及参数说明。可在</span><strong><span>实时开发任务</span></strong><span>中，通过代码编写引用函数。  </span></p><p><strong><span>三、删除函数</span></strong></p><p><span>在函数目录页面找到需要删除的函数，右键单击，在菜单栏选择</span><strong><span>删除</span></strong><span>，即可删除该函数。</span></p><h4 id='任务运维-2'><span>任务运维</span></h4><p><span>在任务运维，可以查看实时任务的</span><strong><span>运行状态以及日志</span></strong><span>，支持</span><strong><span>重跑任务</span></strong><span>、</span><strong><span>终止运行</span></strong><span>等操作，也可以重要的任务设置</span><strong><span>关注</span></strong><span>等。</span></p><p><strong><span>使用教程</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>运维中心 &gt; 实时开发 </span></strong><span>进入运维列表页面，查看任务运行状态和基础信息。</span></p><p><span>3、可对您需要的任务，进行</span><strong><span>查看任务详情，查看日志、关注、重跑/终止运行</span></strong><span>等操作</span></p><ul><li><strong><span>任务详情。</span></strong><span>查看该离线任务基本信息及运行情况。</span></li><li><strong><span>查看日志</span></strong><span>。在操作栏点击“查看日志”，该离线数据同步任务的详情，点击同步来源数据表的名称，则自动定位至该数据表同步的日志信息，方便问题排查。</span></li><li><strong><span>关注。</span></strong><span>在操作栏点击“关注”，可方便后期搜索栏检索关注任务</span></li><li><strong><span>重跑/终止运行</span></strong><span>。可对离线任务进行重跑或者终止等操作。</span></li></ul><p><span>4、</span><strong><span>设置监控。</span></strong><span>在列表中点击</span><strong><span>更多 &gt; 设置监控</span></strong><span>，进入弹窗页面配置各项参数。</span></p><p><img src=".\assets\7-5-任务运维-16480083024938.png" referrerpolicy="no-referrer" alt="7-5-任务运维"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>监控主题</span></td><td><span>默认值，实时开发任务</span></td></tr><tr><td><span>实时开发任务</span></td><td><span>默认值，需要监控的实时开发任务名</span></td></tr><tr><td><span>报警原因</span></td><td><span>触发报警的条件</span></td></tr><tr><td><span>通知人</span></td><td><span>虎符注册的用户角色</span></td></tr><tr><td><span>通知方式</span></td><td><span>支持以邮件方式通知用户</span></td></tr></tbody></table></figure><h2 id='指标管理'><span>指标管理</span></h2><h2 id='数据质量'><span>数据质量</span></h2><p><span>数据质量能够监控数据在加工过程中存在的异常情况，以及产生的脏数据，系统支持自动拦截任务，并发生告警，有效阻断脏数据向下游蔓延，避免因数据问题影响业务决策。</span></p><h3 id='概览-1'><span>概览</span></h3><p><span>概览页展示数据质量的整体概况，总体分为5部分，监控总体统计、数据质量问题分布、数据质量趋势统计、数据质量问题表Top10、数据质量跨层访问情况。</span></p><p><img src=".\assets\1-1数据质量-概览-16480083465609.png" referrerpolicy="no-referrer" alt="1-1数据质量-概览"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>数据质量问题</span></td><td style='text-align:center;' ><span>统计平台未处理的所有质量问题总数</span></td></tr><tr><td style='text-align:center;' ><span>跨层访问数</span></td><td style='text-align:center;' ><span>数仓模型按照分层开发，统计所有跨层访问的总数</span></td></tr><tr><td style='text-align:center;' ><span>监控覆盖率</span></td><td style='text-align:center;' ><span>配置的监控任务占总数据模型的百分比</span></td></tr><tr><td style='text-align:center;' ><span>监控表/监控字段</span></td><td style='text-align:center;' ><span>统计监控的数据表总数，监控字段总数</span></td></tr><tr><td style='text-align:center;' ><span>数据表信息维护率</span></td><td style='text-align:center;' ><span>数据表与字段中文信息维护率</span></td></tr><tr><td style='text-align:center;' ><span>数据质量问题分布</span></td><td style='text-align:center;' ><span>数据质量按照天、周、月时间周期统计，包含完整性、准确性、一致性、及时性</span></td></tr><tr><td style='text-align:center;' ><span>数据质量趋势</span></td><td style='text-align:center;' ><span>数据质量趋势统计每天质量出现的次数</span></td></tr><tr><td style='text-align:center;' ><span>数据质量问题表Top10</span></td><td style='text-align:center;' ><span>从高到底排序数据表出现问题的总排行</span></td></tr><tr><td style='text-align:center;' ><span>数据质量跨层访问数</span></td><td style='text-align:center;' ><span>各层级之间跨层访问次数统计</span></td></tr></tbody></table></figure><h3 id='监控规则'><span>监控规则</span></h3><p><span>监控规则以数据表为出发进行质量规则配置。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一：创建规则</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据质量 &gt; 监控规则</span></strong><span>进入列表页面。</span></p><p><span>3、选择数据表点击</span><strong><span>配置监控规则</span></strong><span>进入规则页面。</span></p><p><img src=".\assets\2-3监控规则-164800836293110.png" referrerpolicy="no-referrer" alt="2-3监控规则"></p><p><span>4、单击</span><strong><span>创建规则</span></strong><span>进入弹窗配置各项参数。</span></p><blockquote><p><strong><span>模板规则</span></strong><span>：系统内置各类校验规则模板，用户可自主选择使用。</span></p></blockquote><p><img src=".\assets\2-4监控规则-164800837264911.png" referrerpolicy="no-referrer" alt="2-4监控规则"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>规则名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>规则类型</span></td><td style='text-align:center;' ><span>规则类型分为表级规则、字段级规则</span></td></tr><tr><td style='text-align:center;' ><span>规则字段</span></td><td style='text-align:center;' ><span>规则字段支持多选</span></td></tr><tr><td style='text-align:center;' ><span>规则模板</span></td><td style='text-align:center;' ><span>规则模板支持20类</span></td></tr><tr><td style='text-align:center;' ><span>描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><p><strong><span>规则模板</span></strong></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>完整性约束</span></td><td style='text-align:center;' ><span>指定字段唯一值的行数和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>空值约束</span></td><td style='text-align:center;' ><span>指定字段唯一值的行数与总行数的比率和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>空值占比约束</span></td><td style='text-align:center;' ><span>指定字段空值的行数和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>取值范围约束</span></td><td style='text-align:center;' ><span>指定字段空值的行数与总行数的比率和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>极大值约束</span></td><td style='text-align:center;' ><span>指定字段重复值的行数和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>极小值约束</span></td><td style='text-align:center;' ><span>指定字段重复值的行数与总行数的比率和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>平均值约束</span></td><td style='text-align:center;' ><span>指定字段的平均值和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>总值约束</span></td><td style='text-align:center;' ><span>指定字段的和值和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>长度约束</span></td><td style='text-align:center;' ><span>指定字段的最大值和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>代码长度约束</span></td><td style='text-align:center;' ><span>指定字段的最小值和设定的规则进行比较</span></td></tr><tr><td style='text-align:center;' ><span>正则表达式约束</span></td><td style='text-align:center;' ><span>身份证号码校验</span></td></tr><tr><td style='text-align:center;' ><span>正则表达式约束</span></td><td style='text-align:center;' ><span>电话号码校验</span></td></tr><tr><td style='text-align:center;' ><span>日期值约束</span></td><td style='text-align:center;' ><span>检查对象是否存在超出当前日期或指定日期的值</span></td></tr><tr><td style='text-align:center;' ><span>枚举值约束</span></td><td style='text-align:center;' ><span>检查对象的值是否满足枚举值内</span></td></tr><tr><td style='text-align:center;' ><span>空字符串约束</span></td><td style='text-align:center;' ><span>检查对象的值是否存在空字符串</span></td></tr><tr><td style='text-align:center;' ><span>空值或空字符串约束</span></td><td style='text-align:center;' ><span>检查对象是否存在空值或者空字符串二者之一</span></td></tr><tr><td style='text-align:center;' ><span>特殊字符约束</span></td><td style='text-align:center;' ><span>检查对象是否存在特殊字符</span></td></tr><tr><td style='text-align:center;' ><span>重复值约束</span></td><td style='text-align:center;' ><span>检查对象是否存在重复值</span></td></tr><tr><td style='text-align:center;' ><span>及时性约束</span></td><td style='text-align:center;' ><span>检查表数据是否存在延迟（天级别）</span></td></tr><tr><td style='text-align:center;' ><span>代码长度约束</span></td><td style='text-align:center;' ><span>当代码长度固定时，检测代码是否有其他长度值</span></td></tr><tr><td style='text-align:center;' ><span>日期值约束</span></td><td style='text-align:center;' ><span>检查对象是否存在超出当前日期或指定日期的值</span></td></tr><tr><td style='text-align:center;' ><span>枚举值约束</span></td><td style='text-align:center;' ><span>检查对象的值是否满足枚举值内</span></td></tr><tr><td style='text-align:center;' ><span>空值占比约束</span></td><td style='text-align:center;' ><span>若空值占比波动较大，超过了某个既定值，则可能这个字段的记录出现了问题，信息出现缺失</span></td></tr></tbody></table></figure><p>&nbsp;</p><blockquote><p><strong><span>自定义规则</span></strong><span>：通过配置方式完成数据质量规则校验，扩展性较强。</span></p></blockquote><p><img src=".\assets\2-5监控规则-164800838188312.png" referrerpolicy="no-referrer" alt="2-5监控规则"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>规则名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>规则字段</span></td><td style='text-align:center;' ><span>规则字段支持多选</span></td></tr><tr><td style='text-align:center;' ><span>统计方式</span></td><td style='text-align:center;' ><span>统计方式支持：avg、count、max、min、sum、length</span></td></tr><tr><td style='text-align:center;' ><span>比较方式</span></td><td style='text-align:center;' ><span>比较方式支持：大于、大于等于、等于、小于、小于等于、不等于、属于、不属于</span></td></tr><tr><td style='text-align:center;' ><span>期望值</span></td><td style='text-align:center;' ><span>期望值与比较方式配合使用，填写字段对比的目标阈值</span></td></tr><tr><td style='text-align:center;' ><span>描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr></tbody></table></figure><p><strong><span>二：设置调度</span></strong></p><p><span>设置调度面向当前数据表的所有规则</span></p><p><span>1、进入</span><strong><span>数据质量 &gt; 监控规则 &gt; 配置监控规则</span></strong><span>进入列表页面。</span></p><p><span>2、单击右上角</span><strong><span>设置调度</span></strong><span>配置各项参数。</span></p><p><img src=".\assets\2-6监控规则-164800838801613.png" referrerpolicy="no-referrer" alt="2-6监控规则"></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>调度状态</span></td><td><span>默认不选中；选中冻结表示调度任务不运行。</span></td></tr><tr><td><span>生效日期</span></td><td><span>表示调度任务的运行时间区间</span></td></tr><tr><td><span>调度周期</span></td><td><span>支持分钟、小时、天、周、月</span></td></tr></tbody></table></figure><p><strong><span>三、试跑</span></strong></p><p><span>试跑为一次性任务，用于检验当前配置的模板是否符合预期，运行结束之后可在</span><strong><span>任务管理</span></strong><span>页面中查看结果。</span></p><p><span>1、进入</span><strong><span>数据质量 &gt; 监控规则 &gt; 配置监控规则</span></strong><span>进入列表页面。</span></p><p><span>2、单击右上角</span><strong><span>试跑</span></strong><span>即开始运行。</span></p><p><img src=".\assets\2-3监控规则-164800841337514.png" referrerpolicy="no-referrer" alt="2-3监控规则"></p><h3 id='任务管理'><span>任务管理</span></h3><p><span>任务管理为数据质量所运行的所有任务记录，任务筛选支持任务频率、任务状态、模糊搜索。</span></p><p><strong><span>使用教程</span></strong></p><p><strong><span>一：任务详情</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据质量 &gt; 任务管理</span></strong><span>进入列表页面。</span></p><p><span>3、选中某个数据表点击</span><strong><span>任务详情</span></strong><span>进入任务详情页面。</span></p><p><img src=".\assets\3-1任务管理-164800843026315.png" referrerpolicy="no-referrer" alt="3-1任务管理"></p><p><span>4、任务详情展示所有规则所运行的记录、状态以及告警数。</span></p><p><strong><span>二：规则配置</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据质量 &gt; 任务管理</span></strong><span>进入列表页面。</span></p><p><span>3、选中某个数据表点击</span><strong><span>规则配置</span></strong><span>进入</span><strong><span>监控规则</span></strong><span>页面重新配置。</span></p><p><strong><span>三：任务结果</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据质量 &gt; 任务管理</span></strong><span>进入列表页面。</span></p><p><span>3、选中某个数据表点击</span><strong><span>任务结果</span></strong><span>进入任务结果页面。</span></p><p><img src=".\assets\3-3任务管理-164800843695816.png" referrerpolicy="no-referrer" alt="3-3任务管理"></p><h2 id='数据资产'><span>数据资产</span></h2><h3 id='数据地图'><span>数据地图</span></h3><p><span>数据地图提供方便快捷的数据搜索服务</span></p><p><img src=".\assets\1644809376672_image.png" referrerpolicy="no-referrer" alt="1644809376672_image"></p><p>&nbsp;</p><p><span>数据地图搜索结果分类包括：规范设计、数据集成、数据开发、指标管理、数据质量、数据服务。</span></p><p><img src=".\assets\1644809376703_image.png" referrerpolicy="no-referrer" alt="image-20220119175433930"></p><h3 id='全域数据'><span>全域数据</span></h3><p><span>全域数据汇聚了平台内所有数据表，支持一站式查看数据详情、血缘、数据等信息。</span></p><p><img src=".\assets\1644809376775_image.png" referrerpolicy="no-referrer" alt="1644809376775_image"></p><p>&nbsp;</p><h2 id='数据服务'><span>数据服务</span></h2><p><span>数据服务旨在为企业搭建统一的数据服务总线，帮助企业统一管理对内对外的API服务。数据服务提供快速将数据表生成数据API的能力，涵盖API发布、管理、运维全生命周期管理，帮助您简单、快速、低成本、低风险地实现微服务聚合、前后端分离、系统集成，向合作伙伴、开发者开放功能和数据。</span></p><h3 id='概览-2'><span>概览</span></h3><p><span>概览页分为</span><strong><span>全局概览</span></strong><span>和</span><strong><span>我的概览</span></strong><span>，数据开发工程师只能看到</span><strong><span>我的概览</span></strong><span>，管理员则能够看到所有。</span></p><p><strong><span>全局概览</span></strong><span>统计了平台内API总数、已申请数、累计调用次数、失败次数、申请统计、调用次数趋势统计、调用用户数TOP、调用量TOP、失败次数TOP、错误类型分布统计信息。</span></p><p><img src=".\assets\1-1数据服务概览-164800848177117.png" referrerpolicy="no-referrer" alt="1-1数据服务概览"></p><p><span>我的概览统计了当前用户使用情况包括我的发布数、申请数、累计调用次数、失败次数、我的申请情况、调用次数趋势统计、调用量TOP、失败次数TOP、错误类型分布统计信息。</span></p><h3 id='api市场'><span>API市场</span></h3><p><span>API市场是当前工作空间下用户发布的所有API接口，用户可在市场内选择符合需求的API进行申请使用。同时支持对市场内的API进行测试、导出API文档等操作。</span></p><p><img src="C:\Users\kunlun.kyx\Desktop\产品相关文档\产品文档V1.1\assets\image-20220323120902352.png" referrerpolicy="no-referrer" alt="image-20220323120902352"></p><h3 id='api管理'><span>API管理</span></h3><p><span>API管理用于管理当前账号创建、注册API接口，以及申请使用</span><strong><span>API市场</span></strong><span>中的接口管理功能。包含</span><strong><span>我的API</span></strong><span>与</span><strong><span>我的申请</span></strong><span>功能。</span></p><h4 id='我的api'><span>我的API</span></h4><p><strong><span>使用教程</span></strong></p><p><strong><span>一：新建API</span></strong></p><p><span>1、登录</span><a href='https://hufu.xuelangyun.com/'><span>虎符</span></a><span>平台</span></p><p><span>2、选择</span><strong><span>数据服务 &gt; API管理</span></strong><span>进入列表页面。</span></p><p><span>3、单击右上角</span><strong><span>新建API</span></strong><span>进入弹窗选择创建API类型。</span></p><figure><table><thead><tr><th><span>参数</span></th><th><span>描述</span></th></tr></thead><tbody><tr><td><span>生成API</span></td><td><span>快速将关系型数据库和NoSQL数据库的表生成数据API接口</span></td></tr><tr><td><span>注册API</span></td><td><span>将已有的API注册至数据服务，进行统一管理、发布和对接</span></td></tr><tr><td><span>指标API</span></td><td><span>将已开发的指标注册至数据服务，帮助指标对外快速对外服务</span></td></tr></tbody></table></figure><blockquote><p><span>生成API</span></p></blockquote><p><span>1、向导模式</span></p><p><span>向导模式支持单张表的对外输出</span></p><p><img src=".\assets\3-3API管理-我的API-164800855413918.png" referrerpolicy="no-referrer" alt="3-3API管理-我的API"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>API名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>API Path</span></td><td style='text-align:center;' ><span>API接口路径，如：/getUserById</span></td></tr><tr><td style='text-align:center;' ><span>API协议</span></td><td style='text-align:center;' ><span>API协议支持复选：HTTP、HTTPS</span></td></tr><tr><td style='text-align:center;' ><span>API分组</span></td><td style='text-align:center;' ><span>下拉框选择API分组目录</span></td></tr><tr><td style='text-align:center;' ><span>描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>数据源</span></td><td style='text-align:center;' ><span>下拉框选择已注册的数据源名称</span></td></tr><tr><td style='text-align:center;' ><span>数据表</span></td><td style='text-align:center;' ><span>下拉框选择数据源内的数据表</span></td></tr><tr><td style='text-align:center;' ><span>参数选择</span></td><td style='text-align:center;' ><span>参数选择为数据表中的字段，均可设置为请求参数或返回参数</span></td></tr><tr><td style='text-align:center;' ><span>请求参数设置</span></td><td style='text-align:center;' ><span>请求参数支持自定义命名，且支持多种运算操作符</span></td></tr><tr><td style='text-align:center;' ><span>返回参数设置</span></td><td style='text-align:center;' ><span>返回参数支持自定义命名，且支持对返回的数据类型设置</span></td></tr></tbody></table></figure><p><span>2、脚本模式</span></p><p><span>脚本模式以编写SQL的方式对外输出，支持多表联合查询。</span></p><p><img src=".\assets\3-4API管理-我的API-164800856280519.png" referrerpolicy="no-referrer" alt="3-4API管理-我的API"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>API名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>API Path</span></td><td style='text-align:center;' ><span>API接口路径，如：/getUserById</span></td></tr><tr><td style='text-align:center;' ><span>API协议</span></td><td style='text-align:center;' ><span>API协议支持复选：HTTP、HTTPS</span></td></tr><tr><td style='text-align:center;' ><span>API分组</span></td><td style='text-align:center;' ><span>下拉框选择API分组目录</span></td></tr><tr><td style='text-align:center;' ><span>描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>数据源</span></td><td style='text-align:center;' ><span>下拉框选择已注册的数据源名称</span></td></tr><tr><td style='text-align:center;' ><span>数据表</span></td><td style='text-align:center;' ><span>下拉框选择数据源内的数据表</span></td></tr><tr><td style='text-align:center;' ><span>查询SQL</span></td><td style='text-align:center;' ><span>SQL可自定义编写，仅支持select</span></td></tr><tr><td style='text-align:center;' ><span>请求参数设置</span></td><td style='text-align:center;' ><span>请求参数支持自定义命名，且支持多种运算操作符</span></td></tr><tr><td style='text-align:center;' ><span>返回参数设置</span></td><td style='text-align:center;' ><span>返回参数支持自定义命名，且支持对返回的数据类型设置</span></td></tr></tbody></table></figure><blockquote><p><span>注册API</span></p></blockquote><p><span>注册API是将已有的API注册至数据服务。</span></p><p><img src=".\assets\3-6API管理-我的API.png" referrerpolicy="no-referrer" alt="3-6API管理-我的API"></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>API名称</span></td><td style='text-align:center;' ><span>2-32个字符，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>API Path</span></td><td style='text-align:center;' ><span>API接口路径，如：/getUserById</span></td></tr><tr><td style='text-align:center;' ><span>API协议</span></td><td style='text-align:center;' ><span>API协议支持复选：HTTP、HTTPS</span></td></tr><tr><td style='text-align:center;' ><span>API分组</span></td><td style='text-align:center;' ><span>下拉框选择API分组目录</span></td></tr><tr><td style='text-align:center;' ><span>描述</span></td><td style='text-align:center;' ><span>128个字符以内，支持中文、英文字母、数字和下划线</span></td></tr><tr><td style='text-align:center;' ><span>协议</span></td><td style='text-align:center;' ><span>下拉框选择HTTP、HTTPS</span></td></tr><tr><td style='text-align:center;' ><span>URL</span></td><td style='text-align:center;' ><span>接口访问路径</span></td></tr><tr><td style='text-align:center;' ><span>超时时间</span></td><td style='text-align:center;' ><span>设置后端超时时间</span></td></tr><tr><td style='text-align:center;' ><span>请求方式</span></td><td style='text-align:center;' ><span>请求方式选择GET、POST、PUT、DELETE</span></td></tr><tr><td style='text-align:center;' ><span>Headers</span></td><td style='text-align:center;' >&nbsp;</td></tr><tr><td style='text-align:center;' ><span>请求参数</span></td><td style='text-align:center;' ><span>请求参与依据Headers选择进行按需配置</span></td></tr></tbody></table></figure><blockquote><p><span>指标API</span></p></blockquote><p><span>指标API是将已开发的指标注册至数据服务，帮助指标对外快速对外服务。</span></p><p><img src=".\assets\3-9API管理-我的API-164800863532320.png" referrerpolicy="no-referrer" alt="3-9API管理-我的API"></p><h4 id='我的申请'><span>我的申请</span></h4><p><strong><span>我的申请</span></strong><span>是在api市场中申请使用的记录，可对已申请的记录进行管理。记录共分为5类状态。</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>已授权</span></td><td style='text-align:center;' ><span>查看已授权的API接口详情以及调用次数</span></td></tr><tr><td style='text-align:center;' ><span>待审批</span></td><td style='text-align:center;' ><span>待审批状态用户可进行</span><strong><span>撤回</span></strong><span>操作</span></td></tr><tr><td style='text-align:center;' ><span>已撤回</span></td><td style='text-align:center;' ><span>已撤回用于展示</span><strong><span>撤回</span></strong><span>操作的记录，用户可进行</span><strong><span>再次申请</span></strong></td></tr><tr><td style='text-align:center;' ><span>已取消</span></td><td style='text-align:center;' ><span>已取消是管理员对已经审批通过的API接口，进行了</span><strong><span>取消授权</span></strong><span>操作，用户可进行</span><strong><span>再次申请</span></strong></td></tr><tr><td style='text-align:center;' ><span>未通过</span></td><td style='text-align:center;' ><span>未通过是管理员驳回了申请，用户可进行</span><strong><span>再次申请</span></strong></td></tr></tbody></table></figure><p><img src=".\assets\4-1API管理-我的申请.png" referrerpolicy="no-referrer" alt="4-1API管理-我的申请"></p><h3 id='api调用'><span>API调用</span></h3><p><span>API调用支持简单认证调用方式，每个用户都有一个专属apiToken，用于调用API接口，同时系统也会记录该apiToken调用接口的明细信息。</span></p><p><img src=".\assets\5-1API调用-164800865552221.png" referrerpolicy="no-referrer" alt="5-1API调用"></p><h3 id='授权审批'><span>授权审批</span></h3><p><span>授权审批只有管理员可访问，用于对申请API的请求进行审批管理，API接口申请状态有5类。</span></p><figure><table><thead><tr><th style='text-align:center;' ><span>参数</span></th><th style='text-align:center;' ><span>描述</span></th></tr></thead><tbody><tr><td style='text-align:center;' ><span>待审批</span></td><td style='text-align:center;' ><span>管理员可之间进入审批管理，选择是否通过</span></td></tr><tr><td style='text-align:center;' ><span>已授权</span></td><td style='text-align:center;' ><span>已授权的API接口管理员可进行取消授权操作</span></td></tr><tr><td style='text-align:center;' ><span>已取消</span></td><td style='text-align:center;' ><span>已取消是管理员审批通过之后，又进行了取消授权操作</span></td></tr><tr><td style='text-align:center;' ><span>未通过</span></td><td style='text-align:center;' ><span>未通过是管理员驳回了申请，用户可进行再次申请</span></td></tr><tr><td style='text-align:center;' ><span>已撤回</span></td><td style='text-align:center;' ><span>已撤回状态是用户申请之后又进行了撤回操作，管理员可查看详情</span></td></tr></tbody></table></figure><p><img src=".\assets\6-1授权审批-164800866388622.png" referrerpolicy="no-referrer" alt="6-1授权审批"></p><h3 id='安全管理'><span>安全管理</span></h3><p><span>安全管理只有管理员可访问，用于对已授权的API进行安全策略管理，管理员可查看API已授权的用户数与累计调用总数。通过点击</span><strong><span>编辑授权</span></strong><span>对授权的用户进行授权管理。</span></p><p><img src=".\assets\7-1安全管理-164800867192123.png" referrerpolicy="no-referrer" alt="7-1安全管理"></p></div></div>

<script>(function(){var e=document.body.parentElement,t=[],n=null,i=document.body.classList.contains("typora-export-collapse-outline"),r=function(e,t,n){document.addEventListener(e,function(e){if(!e.defaultPrevented)for(var i=e.target;i&&i!=this;i=i.parentNode)if(i.matches(t)){!1===n.call(i,e)&&(e.preventDefault(),e.stopPropagation());break}},!1)};function o(){return e.scrollTop}r("click",".outline-expander",function(e){var t=this.closest(".outline-item-wrapper").classList;return t.contains("outline-item-open")?t.remove("outline-item-open"):t.add("outline-item-open"),d(),!1}),r("click",".outline-item",function(e){var t=this.querySelector(".outline-label");if(location.hash="#"+t.getAttribute("href"),i){var n=this.closest(".outline-item-wrapper").classList;n.contains("outline-item-open")||n.add("outline-item-open"),c(),n.add("outline-item-active")}});var a,s,l=function(){var e=o();n=null;for(var i=0;i<t.length&&t[i][1]-e<60;i++)n=t[i]},c=function(){document.querySelectorAll(".outline-item-active").forEach(e=>e.classList.remove("outline-item-active")),document.querySelectorAll(".outline-item-single.outline-item-open").forEach(e=>e.classList.remove("outline-item-open"))},d=function(){if(n){c();var e=document.querySelector('.outline-label[href="#'+(CSS.escape?CSS.escape(n[0]):n[0])+'"]');if(e)if(i){var t=e.closest(".outline-item-open>ul>.outline-item-wrapper");if(t)t.classList.add("outline-item-active");else{for(var r=(e=e.closest(".outline-item-wrapper")).parentElement.closest(".outline-item-wrapper");r;)r=(e=r).parentElement.closest(".outline-item-wrapper");e.classList.add("outline-item-active")}}else e.closest(".outline-item-wrapper").classList.add("outline-item-active")}};window.addEventListener("scroll",function(e){a&&clearTimeout(a),a=setTimeout(function(){l(),d()},300)});var u=function(){s=setTimeout(function(){!function(){t=[];var e=o();document.querySelector("#write").querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(n=>{var i=n.getAttribute("id");t.push([i,e+n.getBoundingClientRect().y])})}(),l(),d()},300)};window.addEventListener("resize",function(e){s&&clearTimeout(s),u()}),u()})();</script></body>
</html>
